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 (
    17, 
    148, 
    180, 
    187, 
    232, 
    230, 
    231, 
    18, 
    16, 
    4, 
    5, 
    23, 
    24, 
    170, 
    1, 
    22, 
    149, 
    227, 
    78, 
    79, 
    190, 
    189, 
    162, 
    159, 
    158, 
    245, 
    238, 
    239, 
    242, 
    243, 
    241, 
    240, 
    214, 
    217, 
    218, 
    207, 
    59, 
    58, 
    60, 
    199, 
    198, 
    94, 
    96, 
    201, 
    114, 
    192, 
    136, 
    130, 
    128, 
    126, 
    131, 
    177, 
    186, 
    185, 
    179, 
    11, 
    172, 
    134, 
    135, 
    195, 
    233, 
    168, 
    167, 
    169, 
    42, 
    39, 
    40, 
    205, 
    37, 
    152, 
    160, 
    74, 
    73, 
    71, 
    75, 
    72, 
    108, 
    237, 
    191, 
    235, 
    70, 
    122, 
    115, 
    156, 
    90, 
    175, 
    196, 
    43, 
    104, 
    76, 
    129, 
    127, 
    121, 
    103, 
    95, 
    182, 
    41, 
    56, 
    57, 
    30, 
    112, 
    246, 
    89, 
    197, 
    208, 
    173, 
    97, 
    229, 
    211, 
    210, 
    209, 
    67, 
    25, 
    116, 
    213, 
    215, 
    226, 
    200, 
    154, 
    53, 
    52, 
    111, 
    82, 
    84, 
    228, 
    85, 
    88, 
    26
  )

Query time 0.00095

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "8.42"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "g",
          "access_type": "index",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "idx_group_code",
          "used_key_parts": [
            "code"
          ],
          "key_length": "387",
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 1,
          "filtered": "100.00",
          "using_index": true,
          "cost_info": {
            "read_cost": "1.00",
            "eval_cost": "0.20",
            "prefix_cost": "1.20",
            "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": [
            "twebezli_Commercemodalpopup.g.id"
          ],
          "rows_examined_per_scan": 7,
          "rows_produced_per_join": 7,
          "filtered": "100.00",
          "index_condition": "(`twebezli_Commercemodalpopup`.`p`.`product_id` in (17,148,180,187,232,230,231,18,16,4,5,23,24,170,1,22,149,227,78,79,190,189,162,159,158,245,238,239,242,243,241,240,214,217,218,207,59,58,60,199,198,94,96,201,114,192,136,130,128,126,131,177,186,185,179,11,172,134,135,195,233,168,167,169,42,39,40,205,37,152,160,74,73,71,75,72,108,237,191,235,70,122,115,156,90,175,196,43,104,76,129,127,121,103,95,182,41,56,57,30,112,246,89,197,208,173,97,229,211,210,209,67,25,116,213,215,226,200,154,53,52,111,82,84,228,85,88,26))",
          "cost_info": {
            "read_cost": "2.00",
            "eval_cost": "1.40",
            "prefix_cost": "4.60",
            "data_read_per_join": "112"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ALL",
          "possible_keys": [
            "idx_group_id"
          ],
          "rows_examined_per_scan": 2,
          "rows_produced_per_join": 14,
          "filtered": "100.00",
          "using_join_buffer": "Block Nested Loop",
          "cost_info": {
            "read_cost": "1.02",
            "eval_cost": "2.80",
            "prefix_cost": "8.42",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ],
          "attached_condition": "(`twebezli_Commercemodalpopup`.`f`.`group_id` = `twebezli_Commercemodalpopup`.`g`.`id`)"
        }
      }
    ]
  }
}