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 (
    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, 6690, 
    6700, 12, 13, 14, 15, 16, 17, 18, 65, 66, 
    67, 68, 69, 70, 71, 119, 120, 121, 122, 
    123, 124, 125, 126, 127, 128, 129, 130, 
    131, 132, 233, 234, 235, 236, 237, 238, 
    239, 286, 287, 288, 289, 290, 291, 292, 
    3922, 3923, 3924, 3925, 3926, 3927, 
    3928, 3976, 3977, 3978, 3979, 3980, 
    3981, 3982, 4028, 4029, 4030, 4031, 
    4032, 4033, 4034, 4035, 4036, 4037, 
    4038, 4039
  )

Query time 0.00107

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "336.01"
    },
    "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": "(`test2_gaseus`.`p`.`product_id` in (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,6690,6700,12,13,14,15,16,17,18,65,66,67,68,69,70,71,119,120,121,122,123,124,125,126,127,128,129,130,131,132,233,234,235,236,237,238,239,286,287,288,289,290,291,292,3922,3923,3924,3925,3926,3927,3928,3976,3977,3978,3979,3980,3981,3982,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039))",
          "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": [
            "test2_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": [
            "test2_gaseus.p.group_id"
          ],
          "rows_examined_per_scan": 7,
          "rows_produced_per_join": 672,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "168.00",
            "eval_cost": "67.20",
            "prefix_cost": "336.01",
            "data_read_per_join": "68K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}