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 (
    90604, 90610, 90650, 90676, 90692, 90693, 
    90653, 90659, 90618, 90634, 90635, 
    90643, 90595, 90601, 90652, 90658, 
    90594, 90600, 90666, 90608, 84232, 
    84235, 90656, 84236, 90598, 84231, 
    84234, 87864, 84230, 84233, 87844, 
    88096, 87860, 87862, 87842, 87858, 
    87863, 87840, 87833, 87838, 87856, 
    87854, 87834, 87852, 93787, 94372, 
    94373, 94374, 94375, 94376, 94377, 
    94378, 94379, 95399, 95400, 95401, 
    95434, 95435, 95436, 95437, 95438, 
    95439, 95440, 95441, 95704, 95705, 
    95728, 95729, 95730, 95731, 95732, 
    95733, 95734, 95735, 96170, 96171, 
    96172, 96173, 96537, 96559, 96560, 
    96561, 97057, 97058, 97994, 97995, 
    97996, 97997, 97998, 97999, 98000, 
    98496, 98497, 98498, 98499, 98500
  )

Query time 0.00081

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 (90604,90610,90650,90676,90692,90693,90653,90659,90618,90634,90635,90643,90595,90601,90652,90658,90594,90600,90666,90608,84232,84235,90656,84236,90598,84231,84234,87864,84230,84233,87844,88096,87860,87862,87842,87858,87863,87840,87833,87838,87856,87854,87834,87852,93787,94372,94373,94374,94375,94376,94377,94378,94379,95399,95400,95401,95434,95435,95436,95437,95438,95439,95440,95441,95704,95705,95728,95729,95730,95731,95732,95733,95734,95735,96170,96171,96172,96173,96537,96559,96560,96561,97057,97058,97994,97995,97996,97997,97998,97999,98000,98496,98497,98498,98499,98500))",
          "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"
          ]
        }
      }
    ]
  }
}