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 (
    87325, 87336, 87337, 87348, 87349, 86482, 
    86484, 86758, 86760, 83582, 83583, 
    83584, 83585, 86479, 86755, 91118, 
    91119, 91204, 91205, 91259, 91260, 
    82615, 82617, 82625, 82626, 83418, 
    83420, 83490, 83491, 86651, 86720, 
    87300, 87301, 82612, 83411, 91149, 
    91150, 86480, 86756, 85073, 85159, 
    85205, 85251, 82613, 83416, 83031, 
    83033, 83588, 83590, 90867, 90869, 
    90946, 90948, 82623, 83488, 85070, 
    85156, 85202, 85248, 85113, 83233, 
    83234, 83028, 83581, 90864, 90943, 
    82843, 82916, 82989, 83473, 83481, 
    85110, 85071, 85157, 85203, 85249, 
    83029, 83227, 83232, 83586, 90865, 
    90944, 85111, 86620, 86622, 86689, 
    86691, 83042, 83044, 90878, 90880, 
    90957, 90959, 84810, 84811, 84828
  )

Query time 0.00057

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 (87325,87336,87337,87348,87349,86482,86484,86758,86760,83582,83583,83584,83585,86479,86755,91118,91119,91204,91205,91259,91260,82615,82617,82625,82626,83418,83420,83490,83491,86651,86720,87300,87301,82612,83411,91149,91150,86480,86756,85073,85159,85205,85251,82613,83416,83031,83033,83588,83590,90867,90869,90946,90948,82623,83488,85070,85156,85202,85248,85113,83233,83234,83028,83581,90864,90943,82843,82916,82989,83473,83481,85110,85071,85157,85203,85249,83029,83227,83232,83586,90865,90944,85111,86620,86622,86689,86691,83042,83044,90878,90880,90957,90959,84810,84811,84828))",
          "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"
          ]
        }
      }
    ]
  }
}