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 (
    1914, 1915, 1761, 2203, 1789, 1811, 1791, 
    1889, 1836, 1799, 1845, 1792, 1905, 
    1806, 1837, 2282, 2002, 1940, 2295, 
    2283, 1970, 2387, 2014, 2355, 1996, 
    2286, 2285, 2310, 1997, 1956, 1971, 
    2316, 1955, 2334, 2108, 2360, 2287, 
    2288, 2009, 1950, 2109, 2107, 2221, 
    2023, 2123, 1982, 1944, 2031, 2032, 
    1920, 2033, 2034, 2165, 2223, 2190, 
    1758, 2365, 2067, 2294, 2070, 2069, 
    1835, 1871, 2241, 2351, 2091, 1959, 
    1981, 2137, 2340, 1745, 2209, 2063, 
    2370, 2377, 1916, 2381, 2392, 1838, 
    1766
  )

Query time 0.00038

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "2.33"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "f",
          "access_type": "ALL",
          "possible_keys": [
            "idx_group_id"
          ],
          "rows_examined_per_scan": 2,
          "rows_produced_per_join": 2,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.52",
            "eval_cost": "0.20",
            "prefix_cost": "0.72",
            "data_read_per_join": "208"
          },
          "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": [
            "cscartdevel.f.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 2,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "0.50",
            "eval_cost": "0.20",
            "prefix_cost": "1.42",
            "data_read_per_join": "800"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "p",
          "access_type": "ALL",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "rows_examined_per_scan": 2,
          "rows_produced_per_join": 4,
          "filtered": "100.00",
          "using_join_buffer": "hash join",
          "cost_info": {
            "read_cost": "0.51",
            "eval_cost": "0.40",
            "prefix_cost": "2.33",
            "data_read_per_join": "64"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ],
          "attached_condition": "((`cscartdevel`.`p`.`group_id` = `cscartdevel`.`f`.`group_id`) and (`cscartdevel`.`p`.`product_id` in (1914,1915,1761,2203,1789,1811,1791,1889,1836,1799,1845,1792,1905,1806,1837,2282,2002,1940,2295,2283,1970,2387,2014,2355,1996,2286,2285,2310,1997,1956,1971,2316,1955,2334,2108,2360,2287,2288,2009,1950,2109,2107,2221,2023,2123,1982,1944,2031,2032,1920,2033,2034,2165,2223,2190,1758,2365,2067,2294,2070,2069,1835,1871,2241,2351,2091,1959,1981,2137,2340,1745,2209,2063,2370,2377,1916,2381,2392,1838,1766)))"
        }
      }
    ]
  }
}