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 (
    99708, 99709, 99710, 99711, 99712, 99713, 
    99714, 99715, 99716, 99719, 99721, 
    99722, 99723, 99724, 99725, 99726, 
    99727, 99728, 99729, 99730, 99731, 
    99732, 99733, 99734, 99735, 99736, 
    99737, 99738, 99739, 99740, 99741, 
    99742, 99743, 99744, 99745, 99746, 
    99747, 99748, 99749, 99750, 99751, 
    99752, 99753, 99754, 99755, 99756, 
    99757, 99758, 99759, 99760, 99761, 
    99762, 99763, 99764, 99765, 99766, 
    99767, 99768, 99769, 99770, 99771, 
    99772, 99773, 99774, 99775, 99776, 
    99777, 99778, 99779, 99780, 99781, 
    99782, 99783, 99784, 99785, 99786, 
    99787, 99788, 99789, 99790, 99791, 
    99792, 99793, 99794, 99795, 99796, 
    99797, 99798, 99799, 99800, 99801, 
    99802, 99803, 99804, 99805, 99806
  )

Query time 0.00065

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 (99708,99709,99710,99711,99712,99713,99714,99715,99716,99719,99721,99722,99723,99724,99725,99726,99727,99728,99729,99730,99731,99732,99733,99734,99735,99736,99737,99738,99739,99740,99741,99742,99743,99744,99745,99746,99747,99748,99749,99750,99751,99752,99753,99754,99755,99756,99757,99758,99759,99760,99761,99762,99763,99764,99765,99766,99767,99768,99769,99770,99771,99772,99773,99774,99775,99776,99777,99778,99779,99780,99781,99782,99783,99784,99785,99786,99787,99788,99789,99790,99791,99792,99793,99794,99795,99796,99797,99798,99799,99800,99801,99802,99803,99804,99805,99806))",
          "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"
          ]
        }
      }
    ]
  }
}