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 (
    88074, 88069, 87878, 88075, 88025, 84696, 
    88938, 87996, 84699, 88516, 88519, 
    88073, 88940, 88040, 84703, 84706, 
    88082, 91053, 88941, 87958, 88068, 
    87951, 88067, 88512, 88077, 88141, 
    88144, 88939, 87986, 87946, 87947, 
    87949, 88043, 87956, 89982, 89983, 
    89984, 88081, 84702, 84705, 91052, 
    88003, 88046, 88080, 84697, 84698, 
    88028, 88140, 88143, 88508, 87890, 
    84695, 88937, 87877, 87905, 88045, 
    88049, 87936, 88515, 88518, 88078, 
    88514, 88517, 88511, 88083, 87904, 
    90325, 87876, 88506, 88507, 88510, 
    88035, 88044, 87987, 90828, 90827, 
    87938, 87941, 87997, 88026, 87882, 
    87988, 88036, 88047, 88048, 90324, 
    90326, 88050, 88051, 88052, 88053, 
    88054, 87900, 87901, 87990, 87961
  )

Query time 0.00083

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 (88074,88069,87878,88075,88025,84696,88938,87996,84699,88516,88519,88073,88940,88040,84703,84706,88082,91053,88941,87958,88068,87951,88067,88512,88077,88141,88144,88939,87986,87946,87947,87949,88043,87956,89982,89983,89984,88081,84702,84705,91052,88003,88046,88080,84697,84698,88028,88140,88143,88508,87890,84695,88937,87877,87905,88045,88049,87936,88515,88518,88078,88514,88517,88511,88083,87904,90325,87876,88506,88507,88510,88035,88044,87987,90828,90827,87938,87941,87997,88026,87882,87988,88036,88047,88048,90324,90326,88050,88051,88052,88053,88054,87900,87901,87990,87961))",
          "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"
          ]
        }
      }
    ]
  }
}