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 (
    89721, 86874, 86872, 86875, 86883, 86870, 
    86868, 86871, 86873, 86869, 86881, 
    86878, 86879, 89720, 86876, 86886, 
    89719, 89722, 86877, 86882, 86884, 
    86885, 89579, 89581, 89583, 89585, 
    89587, 89578, 89580, 89582, 89584, 
    89586, 89588, 89577, 85567, 89576, 
    94024, 94025, 94429, 94430, 94431, 
    94432, 94433, 94434, 94441, 95100, 
    95558, 95559, 95560, 95638, 95640, 
    95645, 95646, 95653, 95790, 95933, 
    95936, 95940, 96522, 96523, 96524, 
    96525, 96526, 96527, 96528, 96677, 
    96679, 96684, 96685, 96693, 98445, 
    98682, 99507, 99511, 99515, 100361, 
    100362, 100363, 100364, 100365, 100366, 
    100367, 100368, 100369, 100370, 100371, 
    100372, 100373, 100384, 100385, 101047, 
    101048, 101049, 101050, 101051, 101052
  )

Query time 0.00106

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 (89721,86874,86872,86875,86883,86870,86868,86871,86873,86869,86881,86878,86879,89720,86876,86886,89719,89722,86877,86882,86884,86885,89579,89581,89583,89585,89587,89578,89580,89582,89584,89586,89588,89577,85567,89576,94024,94025,94429,94430,94431,94432,94433,94434,94441,95100,95558,95559,95560,95638,95640,95645,95646,95653,95790,95933,95936,95940,96522,96523,96524,96525,96526,96527,96528,96677,96679,96684,96685,96693,98445,98682,99507,99511,99515,100361,100362,100363,100364,100365,100366,100367,100368,100369,100370,100371,100372,100373,100384,100385,101047,101048,101049,101050,101051,101052))",
          "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"
          ]
        }
      }
    ]
  }
}