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 (
    96064, 96065, 96066, 96067, 96068, 96069, 
    96070, 96071, 96072, 96073, 96074, 
    96075, 96076, 96077, 96078, 96079, 
    96080, 96081, 96082, 96083, 96084, 
    96085, 96086, 96087, 96088, 96089, 
    96090, 96091, 96092, 96093, 96094, 
    96095, 96096, 96097, 96098, 96099, 
    96100, 96101, 96102, 96103, 96104, 
    96383, 96384, 96385, 96386, 96387, 
    96388, 96389, 96390, 96391, 96394, 
    96395, 96396, 96397, 96398, 96399, 
    96400, 96409, 96410, 96429, 96432, 
    96433, 96442, 96443, 96444, 96445, 
    96446, 96447, 96448, 96449, 96450, 
    96451, 96452, 96453, 96454, 96455, 
    96456, 96457, 96458, 96459, 96460, 
    96461, 96462, 96463, 96464, 96465, 
    96466, 96467, 96468, 96469, 96470, 
    96471, 96472, 96473, 96474, 98600
  )

Query time 0.00040

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 (96064,96065,96066,96067,96068,96069,96070,96071,96072,96073,96074,96075,96076,96077,96078,96079,96080,96081,96082,96083,96084,96085,96086,96087,96088,96089,96090,96091,96092,96093,96094,96095,96096,96097,96098,96099,96100,96101,96102,96103,96104,96383,96384,96385,96386,96387,96388,96389,96390,96391,96394,96395,96396,96397,96398,96399,96400,96409,96410,96429,96432,96433,96442,96443,96444,96445,96446,96447,96448,96449,96450,96451,96452,96453,96454,96455,96456,96457,96458,96459,96460,96461,96462,96463,96464,96465,96466,96467,96468,96469,96470,96471,96472,96473,96474,98600))",
          "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"
          ]
        }
      }
    ]
  }
}