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 (
    88064, 89987, 87957, 88065, 88074, 88025, 
    87996, 88073, 88040, 87951, 88077, 
    87986, 87946, 87947, 87949, 88043, 
    87956, 88081, 88003, 88080, 88028, 
    88049, 87936, 88044, 93792, 93793, 
    94495, 94497, 94498, 94500, 94502, 
    94503, 94508, 94514, 94580, 94851, 
    95315, 95318, 95760, 95761, 95763, 
    95768, 95769, 95789, 95821, 95822, 
    95867, 95868, 95889, 95891, 95892, 
    96120, 96121, 96571, 97619, 97621, 
    97622, 97624, 97626, 97627, 97632, 
    97638, 97704, 98587, 98588, 98589, 
    98878, 98879, 98880, 98881, 98886, 
    98887, 98888, 99110, 99120, 99121, 
    99123, 99125, 99127, 99128, 99162, 
    99171, 99177, 99182, 99183, 99203, 
    99206, 99218, 99221, 99222, 99227, 
    99242, 99243, 99251, 99252, 99255
  )

Query time 0.00087

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 (88064,89987,87957,88065,88074,88025,87996,88073,88040,87951,88077,87986,87946,87947,87949,88043,87956,88081,88003,88080,88028,88049,87936,88044,93792,93793,94495,94497,94498,94500,94502,94503,94508,94514,94580,94851,95315,95318,95760,95761,95763,95768,95769,95789,95821,95822,95867,95868,95889,95891,95892,96120,96121,96571,97619,97621,97622,97624,97626,97627,97632,97638,97704,98587,98588,98589,98878,98879,98880,98881,98886,98887,98888,99110,99120,99121,99123,99125,99127,99128,99162,99171,99177,99182,99183,99203,99206,99218,99221,99222,99227,99242,99243,99251,99252,99255))",
          "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"
          ]
        }
      }
    ]
  }
}