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 (
    97524, 97534, 97535, 97536, 97537, 97538, 
    97539, 97540, 97541, 97542, 97543, 
    97544, 97545, 97546, 97547, 97548, 
    97549, 97550, 97551, 97552, 97553, 
    97554, 97555, 97556, 97557, 97558, 
    97559, 97560, 97561, 97562, 97563, 
    97564, 97565, 97566, 97568, 97569, 
    97571, 97572, 97587, 97588, 97589, 
    97590, 97591, 97592, 97593, 97594, 
    97595, 97596, 97597, 97598, 97599, 
    97600, 97601, 97602, 97603, 97604, 
    97605, 97606, 97607, 98457, 98458, 
    98459, 98460, 98461, 98462, 98463, 
    98464, 98465, 98466, 98467, 98468, 
    98469, 98470, 98471, 98472, 98473, 
    98474, 98475, 99050, 99051, 99052, 
    99053, 99282, 99283, 99284, 99285, 
    99286, 99287, 99288, 99289, 99290, 
    99291, 99292, 99293, 99294, 99295
  )

Query time 0.00101

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 (97524,97534,97535,97536,97537,97538,97539,97540,97541,97542,97543,97544,97545,97546,97547,97548,97549,97550,97551,97552,97553,97554,97555,97556,97557,97558,97559,97560,97561,97562,97563,97564,97565,97566,97568,97569,97571,97572,97587,97588,97589,97590,97591,97592,97593,97594,97595,97596,97597,97598,97599,97600,97601,97602,97603,97604,97605,97606,97607,98457,98458,98459,98460,98461,98462,98463,98464,98465,98466,98467,98468,98469,98470,98471,98472,98473,98474,98475,99050,99051,99052,99053,99282,99283,99284,99285,99286,99287,99288,99289,99290,99291,99292,99293,99294,99295))",
          "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"
          ]
        }
      }
    ]
  }
}