SELECT 
  f.feature_id, 
  f.purpose, 
  p.product_id, 
  p.parent_product_id, 
  g.id, 
  g.code 
FROM 
  cscart_product_variation_group_features AS f 
  INNER JOIN cscart_product_variation_groups AS g ON f.group_id = g.id 
  INNER JOIN cscart_product_variation_group_products AS p ON f.group_id = p.group_id 
WHERE 
  p.product_id IN (
    3863, 3148, 6718, 6722, 3144, 3147, 3096, 
    339, 3104, 3107, 6682, 6678, 104, 105, 
    106, 107, 108, 109, 110, 4013, 4014, 
    4015, 4016, 4017, 4018, 4019, 3105, 
    6677, 6686, 64, 118, 224, 225, 285, 3975, 
    4027, 4108, 4109, 4170, 4223, 203, 204, 
    205, 206, 207, 208, 209, 4087, 4088, 
    4089, 4090, 4091, 4092, 4093, 3122, 
    6675, 6696, 6703, 3118, 3111, 3124, 
    3112, 324, 3419, 6704, 3418, 6709, 6946, 
    4177, 6945, 338, 331, 6705, 3932, 3134, 
    3116, 3126, 6673, 6679, 6691, 3155, 
    3131, 310, 303, 3939, 317, 3132, 3143, 
    3130, 3129, 3121, 3128, 6681, 6695, 
    3098, 3115
  )

Query time 0.00084

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "201.61"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "p",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 96,
          "rows_produced_per_join": 96,
          "filtered": "100.00",
          "index_condition": "(`gaseus`.`p`.`product_id` in (3863,3148,6718,6722,3144,3147,3096,339,3104,3107,6682,6678,104,105,106,107,108,109,110,4013,4014,4015,4016,4017,4018,4019,3105,6677,6686,64,118,224,225,285,3975,4027,4108,4109,4170,4223,203,204,205,206,207,208,209,4087,4088,4089,4090,4091,4092,4093,3122,6675,6696,6703,3118,3111,3124,3112,324,3419,6704,3418,6709,6946,4177,6945,338,331,6705,3932,3134,3116,3126,6673,6679,6691,3155,3131,310,303,3939,317,3132,3143,3130,3129,3121,3128,6681,6695,3098,3115))",
          "cost_info": {
            "read_cost": "57.61",
            "eval_cost": "9.60",
            "prefix_cost": "67.21",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "gaseus.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 96,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "24.00",
            "eval_cost": "9.60",
            "prefix_cost": "100.81",
            "data_read_per_join": "37K"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ref",
          "possible_keys": [
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "gaseus.p.group_id"
          ],
          "rows_examined_per_scan": 3,
          "rows_produced_per_join": 288,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "72.00",
            "eval_cost": "28.80",
            "prefix_cost": "201.61",
            "data_read_per_join": "29K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}