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, 87148, 87149, 87150, 87151, 
    87152, 87153, 87286, 87181, 87198, 
    87215, 90798, 87184, 87201, 87218, 
    90801, 85014, 85020, 85026, 85032, 
    87182, 87199, 87216, 90799, 87154, 
    87155, 87156, 87157, 87158, 87159, 
    87287, 87180, 87197, 87214, 85018, 
    85024, 85030, 85036, 85013, 85019, 
    85025, 85031, 87142, 87143, 87144, 
    87145, 87146, 87147, 87285, 88766, 
    85017, 85023, 85029, 85035, 87172, 
    87173, 87174, 87175, 87176, 87177, 
    87160, 87161, 87162, 87163, 87164, 
    87165, 88672, 88719, 89215, 89228, 
    89241, 87166, 87167, 87168, 87169, 
    87170, 87171, 87136, 87137, 87138, 
    87139, 87140, 87141, 87284, 89449
  )

Query time 0.00045

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,87148,87149,87150,87151,87152,87153,87286,87181,87198,87215,90798,87184,87201,87218,90801,85014,85020,85026,85032,87182,87199,87216,90799,87154,87155,87156,87157,87158,87159,87287,87180,87197,87214,85018,85024,85030,85036,85013,85019,85025,85031,87142,87143,87144,87145,87146,87147,87285,88766,85017,85023,85029,85035,87172,87173,87174,87175,87176,87177,87160,87161,87162,87163,87164,87165,88672,88719,89215,89228,89241,87166,87167,87168,87169,87170,87171,87136,87137,87138,87139,87140,87141,87284,89449))",
          "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"
          ]
        }
      }
    ]
  }
}