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 (
    1802, 1801, 1880, 1767, 2346, 2301, 2081, 
    1947, 2157, 2207, 2142, 2121, 2375, 
    2088, 2089, 2090, 2087, 2158, 1787, 
    2105, 2133, 2125, 2092, 2093, 2046, 
    2045, 2044, 2047, 2049, 2048, 1995, 
    1943, 2120, 2094, 2385, 1989, 2314, 
    1951, 2096, 1988, 2098, 2097, 2099, 
    2199, 2200, 1948, 2095, 2100, 2124, 
    2101, 2134, 2198, 2291, 2103, 2307, 
    2166, 2208, 2102, 2104, 2345, 2143, 
    2119, 2144, 2362, 2233, 2350, 2232, 
    2244, 2051, 1855, 2367, 1808, 1891, 
    1892, 2368, 2393, 1952, 1939, 1930, 
    1764
  )

Query time 0.00037

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 (1802,1801,1880,1767,2346,2301,2081,1947,2157,2207,2142,2121,2375,2088,2089,2090,2087,2158,1787,2105,2133,2125,2092,2093,2046,2045,2044,2047,2049,2048,1995,1943,2120,2094,2385,1989,2314,1951,2096,1988,2098,2097,2099,2199,2200,1948,2095,2100,2124,2101,2134,2198,2291,2103,2307,2166,2208,2102,2104,2345,2143,2119,2144,2362,2233,2350,2232,2244,2051,1855,2367,1808,1891,1892,2368,2393,1952,1939,1930,1764)))"
        }
      }
    ]
  }
}