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 (
    87185, 87202, 87219, 90802, 87186, 87203, 
    87220, 90803, 87183, 87200, 87217, 
    90800, 87181, 87198, 87215, 90798, 
    87184, 87201, 87218, 90801, 85014, 
    85020, 85026, 85032, 87182, 87199, 
    87216, 90799, 87180, 87197, 87214, 
    85013, 85019, 85025, 85031, 89449, 
    89462, 89470, 89478, 89446, 88982, 
    88999, 88988, 89448, 89461, 89469, 
    89477, 89445, 88981, 88998, 88987, 
    89964, 90838, 90840, 87450, 88503, 
    89022, 88169, 88217, 87453, 88502, 
    90836, 87505, 87521, 88454, 88471, 
    88487, 89021, 87537, 88422, 89839, 
    89891, 89963, 88523, 85722, 85739, 
    85749, 85759, 88193, 88205, 88980, 
    88997, 88495, 85719, 87506, 87522, 
    88453, 88470, 88486, 89837, 89889, 
    89961, 88522, 88986, 88168, 88216
  )

Query time 0.00105

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 (87185,87202,87219,90802,87186,87203,87220,90803,87183,87200,87217,90800,87181,87198,87215,90798,87184,87201,87218,90801,85014,85020,85026,85032,87182,87199,87216,90799,87180,87197,87214,85013,85019,85025,85031,89449,89462,89470,89478,89446,88982,88999,88988,89448,89461,89469,89477,89445,88981,88998,88987,89964,90838,90840,87450,88503,89022,88169,88217,87453,88502,90836,87505,87521,88454,88471,88487,89021,87537,88422,89839,89891,89963,88523,85722,85739,85749,85759,88193,88205,88980,88997,88495,85719,87506,87522,88453,88470,88486,89837,89889,89961,88522,88986,88168,88216))",
          "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"
          ]
        }
      }
    ]
  }
}