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 (
    89059, 89060, 89063, 89064, 89058, 89206, 
    89207, 89210, 89211, 89219, 89220, 
    89223, 89224, 89232, 89233, 89236, 
    89237, 89055, 89056, 89062, 89054, 
    86187, 86210, 86511, 86787, 83060, 
    90896, 90975, 85069, 85155, 85201, 
    85247, 85109, 86141, 86164, 86649, 
    86718, 89815, 89867, 89939, 91505, 
    82841, 82914, 82987, 85303, 85400, 
    85451, 85502, 85349, 89763, 86489, 
    86765, 85079, 85165, 85211, 85257, 
    83038, 90874, 90953, 82622, 85119, 
    86193, 86194, 86216, 86217, 86525, 
    86526, 86801, 86802, 83049, 90885, 
    90964, 83074, 83075, 83627, 83628, 
    86627, 86696, 90910, 90911, 90989, 
    90990, 85084, 85085, 85170, 85171, 
    85216, 85217, 85262, 85263, 85314, 
    85411, 85462, 85513, 86192, 86215
  )

Query time 0.00077

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 (89059,89060,89063,89064,89058,89206,89207,89210,89211,89219,89220,89223,89224,89232,89233,89236,89237,89055,89056,89062,89054,86187,86210,86511,86787,83060,90896,90975,85069,85155,85201,85247,85109,86141,86164,86649,86718,89815,89867,89939,91505,82841,82914,82987,85303,85400,85451,85502,85349,89763,86489,86765,85079,85165,85211,85257,83038,90874,90953,82622,85119,86193,86194,86216,86217,86525,86526,86801,86802,83049,90885,90964,83074,83075,83627,83628,86627,86696,90910,90911,90989,90990,85084,85085,85170,85171,85216,85217,85262,85263,85314,85411,85462,85513,86192,86215))",
          "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"
          ]
        }
      }
    ]
  }
}