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 (
    97865, 97866, 97869, 97870, 97873, 97903, 
    97904, 97905, 97906, 97907, 97908, 
    97909, 97910, 97935, 97936, 97937, 
    97938, 97939, 97940, 97941, 97942, 
    97952, 97962, 97963, 97967, 97970, 
    97971, 97972, 97973, 97975, 97978, 
    97979, 97982, 97983, 97986, 97987, 
    98041, 98043, 98045, 98047, 98049, 
    98051, 98084, 98122, 98123, 98124, 
    98125, 98126, 98127, 98128, 98129, 
    98169, 98171, 98172, 98174, 98327, 
    98328, 98329, 98330, 98331, 98332, 
    98333, 98334, 98335, 98336, 98337, 
    98338, 98339, 98340, 98341, 98342, 
    98367, 98368, 98369, 98370, 98371, 
    98372, 98373, 98374, 98375, 98376, 
    98377, 98378, 98379, 98380, 98381, 
    98382, 98418, 98420, 98551, 98571, 
    98683, 98684, 98717, 98719, 98721
  )

Query time 0.00043

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 (97865,97866,97869,97870,97873,97903,97904,97905,97906,97907,97908,97909,97910,97935,97936,97937,97938,97939,97940,97941,97942,97952,97962,97963,97967,97970,97971,97972,97973,97975,97978,97979,97982,97983,97986,97987,98041,98043,98045,98047,98049,98051,98084,98122,98123,98124,98125,98126,98127,98128,98129,98169,98171,98172,98174,98327,98328,98329,98330,98331,98332,98333,98334,98335,98336,98337,98338,98339,98340,98341,98342,98367,98368,98369,98370,98371,98372,98373,98374,98375,98376,98377,98378,98379,98380,98381,98382,98418,98420,98551,98571,98683,98684,98717,98719,98721))",
          "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"
          ]
        }
      }
    ]
  }
}