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 (
    98624, 98651, 98681, 98760, 98761, 99012, 
    99013, 99014, 99015, 99016, 99017, 
    99018, 99019, 99588, 99589, 99590, 
    99591, 99592, 99593, 99594, 99595, 
    99596, 99597, 99598, 99599, 99600, 
    99601, 99602, 99603, 99604, 99605, 
    99606, 99607, 99608, 99609, 99610, 
    99611, 99612, 99613, 99614, 99615, 
    99616, 99617, 99618, 99619, 99620, 
    99621, 99622, 99623, 99624, 99625, 
    99626, 99627, 99628, 99629, 99630, 
    99631, 99632, 99633, 99634, 99635, 
    99636, 99637, 99638, 99639, 99640, 
    99641, 99642, 99643, 99644, 99645, 
    99646, 99647, 99669, 99670, 99671, 
    99672, 99673, 99674, 99675, 99676, 
    99677, 99678, 99679, 99680, 99681, 
    99682, 99697, 99698, 99699, 99700, 
    99701, 99702, 99703, 99706, 99707
  )

Query time 0.00074

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 (98624,98651,98681,98760,98761,99012,99013,99014,99015,99016,99017,99018,99019,99588,99589,99590,99591,99592,99593,99594,99595,99596,99597,99598,99599,99600,99601,99602,99603,99604,99605,99606,99607,99608,99609,99610,99611,99612,99613,99614,99615,99616,99617,99618,99619,99620,99621,99622,99623,99624,99625,99626,99627,99628,99629,99630,99631,99632,99633,99634,99635,99636,99637,99638,99639,99640,99641,99642,99643,99644,99645,99646,99647,99669,99670,99671,99672,99673,99674,99675,99676,99677,99678,99679,99680,99681,99682,99697,99698,99699,99700,99701,99702,99703,99706,99707))",
          "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"
          ]
        }
      }
    ]
  }
}