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 (
    271483, 271484, 190720, 190686, 190711, 
    190675, 190708, 190716, 415219, 190712, 
    190700, 415312, 190710, 427780, 190709, 
    190721, 190722, 190680, 190701, 190717, 
    190714, 190679, 190715, 190681, 190694, 
    190685, 190677, 190688, 190687, 190678, 
    190682, 190684, 427788, 190702, 352784, 
    190704, 190703, 190706, 190707, 352781, 
    352794, 352795, 352778, 356734, 352793, 
    352791, 352785, 354012, 352776, 352777, 
    352788, 352792, 352779, 352790, 352783, 
    352787, 359761, 352786, 356712, 309479, 
    356705, 356862, 356753, 359804, 352882, 
    356714, 356701, 356859, 352782, 265116, 
    356707, 352780, 356727, 354114, 352789, 
    355579, 435267, 356958, 435266, 435268, 
    435265, 354572, 356703, 356724, 356764, 
    353643, 356716, 356878, 353851, 356813, 
    353538, 354532, 353505, 354679, 356870, 
    354027, 354033, 354536, 353498, 353653
  )

Query time 0.00113

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "430.06"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "p",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 100,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "120.12",
            "eval_cost": "20.00",
            "prefix_cost": "140.12",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ],
          "attached_condition": "(`webmarco`.`p`.`product_id` in (271483,271484,190720,190686,190711,190675,190708,190716,415219,190712,190700,415312,190710,427780,190709,190721,190722,190680,190701,190717,190714,190679,190715,190681,190694,190685,190677,190688,190687,190678,190682,190684,427788,190702,352784,190704,190703,190706,190707,352781,352794,352795,352778,356734,352793,352791,352785,354012,352776,352777,352788,352792,352779,352790,352783,352787,359761,352786,356712,309479,356705,356862,356753,359804,352882,356714,356701,356859,352782,265116,356707,352780,356727,354114,352789,355579,435267,356958,435266,435268,435265,354572,356703,356724,356764,353643,356716,356878,353851,356813,353538,354532,353505,354679,356870,354027,354033,354536,353498,353653))"
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "100.00",
            "eval_cost": "20.00",
            "prefix_cost": "260.12",
            "data_read_per_join": "39K"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ref",
          "possible_keys": [
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 141,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "141.62",
            "eval_cost": "28.32",
            "prefix_cost": "430.06",
            "data_read_per_join": "14K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}