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 (
    89519, 89520, 89515, 89516, 89942, 89943, 
    89940, 86471, 86472, 89941, 86469, 
    86470, 86609, 86610, 86678, 86679, 
    86607, 86676, 86608, 86677, 89927, 
    89928, 89925, 85053, 85139, 85185, 
    85231, 85051, 85137, 85183, 85229, 
    89926, 85047, 85052, 85138, 85184, 
    85230, 85045, 89918, 89919, 85046, 
    86467, 86468, 86465, 89916, 89917, 
    86466, 85050, 85136, 85182, 85228, 
    85048, 85049, 85134, 85135, 85180, 
    85181, 85226, 85227, 85044, 86463, 
    86464, 86605, 86606, 86674, 86675, 
    85042, 85043, 86603, 86672, 86461, 
    86462, 86604, 86673, 86601, 86602, 
    86670, 86671, 86599, 86600, 86668, 
    86669, 89958, 89959, 89956, 89957, 
    89954, 89955, 89952, 89953, 86477, 
    86478, 86615, 86616, 86684, 86685
  )

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 (89519,89520,89515,89516,89942,89943,89940,86471,86472,89941,86469,86470,86609,86610,86678,86679,86607,86676,86608,86677,89927,89928,89925,85053,85139,85185,85231,85051,85137,85183,85229,89926,85047,85052,85138,85184,85230,85045,89918,89919,85046,86467,86468,86465,89916,89917,86466,85050,85136,85182,85228,85048,85049,85134,85135,85180,85181,85226,85227,85044,86463,86464,86605,86606,86674,86675,85042,85043,86603,86672,86461,86462,86604,86673,86601,86602,86670,86671,86599,86600,86668,86669,89958,89959,89956,89957,89954,89955,89952,89953,86477,86478,86615,86616,86684,86685))",
          "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"
          ]
        }
      }
    ]
  }
}