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 (
    96369, 96370, 96371, 96372, 96373, 96374, 
    96375, 96376, 96377, 96378, 96379, 
    96380, 96381, 96382, 96392, 96393, 
    96401, 96402, 96403, 96404, 96405, 
    96406, 96407, 96408, 96411, 96412, 
    96413, 96414, 96415, 96416, 96417, 
    96418, 96419, 96420, 96421, 96422, 
    96423, 96424, 96425, 96426, 96427, 
    96428, 96430, 96431, 96434, 96435, 
    96436, 96437, 96438, 96439, 96440, 
    96441, 96475, 96476, 96477, 96478, 
    96479, 96480, 96481, 96482, 96483, 
    96484, 96485, 96486, 96487, 96488, 
    96489, 97802, 97803, 97804, 97805, 
    97806, 97807, 97808, 97809, 98590, 
    98591, 98592, 98593, 98594, 98595, 
    98596, 98597, 98598, 98599, 98604, 
    98605, 98614, 98615, 98617, 98618, 
    98619, 98620, 98621, 98622, 98623
  )

Query time 0.00066

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 (96369,96370,96371,96372,96373,96374,96375,96376,96377,96378,96379,96380,96381,96382,96392,96393,96401,96402,96403,96404,96405,96406,96407,96408,96411,96412,96413,96414,96415,96416,96417,96418,96419,96420,96421,96422,96423,96424,96425,96426,96427,96428,96430,96431,96434,96435,96436,96437,96438,96439,96440,96441,96475,96476,96477,96478,96479,96480,96481,96482,96483,96484,96485,96486,96487,96488,96489,97802,97803,97804,97805,97806,97807,97808,97809,98590,98591,98592,98593,98594,98595,98596,98597,98598,98599,98604,98605,98614,98615,98617,98618,98619,98620,98621,98622,98623))",
          "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"
          ]
        }
      }
    ]
  }
}