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 (
    88904, 90824, 90825, 87232, 87233, 87237, 
    87238, 87242, 87243, 87247, 87248, 
    84251, 84256, 87580, 87595, 87610, 
    88791, 84250, 84255, 87578, 87579, 
    87593, 87594, 87608, 87609, 88151, 
    88153, 88789, 88790, 87653, 87667, 
    87674, 87681, 87702, 87710, 87711, 
    87724, 87725, 87652, 87658, 87666, 
    87672, 87673, 87679, 87680, 87686, 
    87701, 87707, 87709, 87721, 87723, 
    87735, 88694, 88695, 88741, 88742, 
    88149, 88587, 84241, 87234, 87235, 
    87236, 87239, 87240, 87241, 87244, 
    87245, 87246, 87249, 87250, 87251, 
    84240, 88588, 84239, 84238, 84254, 
    84259, 87577, 87592, 87607, 88788, 
    90054, 90056, 90057, 84252, 84253, 
    84257, 84258, 87575, 87576, 87590, 
    87591, 87605, 87606, 88786, 88787
  )

Query time 0.00073

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "1.05"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "f",
          "access_type": "ALL",
          "possible_keys": [
            "idx_group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "0.35",
            "data_read_per_join": "104"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "nuie_scalesta_net.f.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "0.70",
            "data_read_per_join": "400"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "p",
          "access_type": "ref",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "nuie_scalesta_net.f.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "index_condition": "(`nuie_scalesta_net`.`p`.`product_id` in (88904,90824,90825,87232,87233,87237,87238,87242,87243,87247,87248,84251,84256,87580,87595,87610,88791,84250,84255,87578,87579,87593,87594,87608,87609,88151,88153,88789,88790,87653,87667,87674,87681,87702,87710,87711,87724,87725,87652,87658,87666,87672,87673,87679,87680,87686,87701,87707,87709,87721,87723,87735,88694,88695,88741,88742,88149,88587,84241,87234,87235,87236,87239,87240,87241,87244,87245,87246,87249,87250,87251,84240,88588,84239,84238,84254,84259,87577,87592,87607,88788,90054,90056,90057,84252,84253,84257,84258,87575,87576,87590,87591,87605,87606,88786,88787))",
          "cost_info": {
            "read_cost": "0.25",
            "eval_cost": "0.10",
            "prefix_cost": "1.05",
            "data_read_per_join": "16"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ]
        }
      }
    ]
  }
}