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 (
    79, 80, 81, 82, 140, 141, 142, 143, 144, 
    145, 146, 161, 162, 163, 164, 165, 166, 
    167, 243, 244, 245, 246, 247, 248, 249, 
    297, 298, 299, 300, 301, 302, 3525, 3526, 
    3527, 3528, 3529, 3530, 3531, 3940, 
    3941, 3942, 3943, 3944, 3945, 3946, 
    3985, 3986, 3987, 3988, 3989, 3990, 
    3991, 4045, 4046, 4047, 4048, 4049, 
    4050, 4051, 4128, 4129, 4130, 4131, 
    4132, 4133, 4134, 4181, 4182, 4183, 
    4184, 4185, 4186, 4187, 26, 27, 28, 72, 
    73, 74, 75, 133, 134, 135, 136, 137, 138, 
    139, 240, 241, 242, 293, 294, 295, 296, 
    3520, 3521
  )

Query time 0.00100

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "201.61"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "p",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 96,
          "rows_produced_per_join": 96,
          "filtered": "100.00",
          "index_condition": "(`gaseus`.`p`.`product_id` in (79,80,81,82,140,141,142,143,144,145,146,161,162,163,164,165,166,167,243,244,245,246,247,248,249,297,298,299,300,301,302,3525,3526,3527,3528,3529,3530,3531,3940,3941,3942,3943,3944,3945,3946,3985,3986,3987,3988,3989,3990,3991,4045,4046,4047,4048,4049,4050,4051,4128,4129,4130,4131,4132,4133,4134,4181,4182,4183,4184,4185,4186,4187,26,27,28,72,73,74,75,133,134,135,136,137,138,139,240,241,242,293,294,295,296,3520,3521))",
          "cost_info": {
            "read_cost": "57.61",
            "eval_cost": "9.60",
            "prefix_cost": "67.21",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ]
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "gaseus.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 96,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "24.00",
            "eval_cost": "9.60",
            "prefix_cost": "100.81",
            "data_read_per_join": "37K"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ref",
          "possible_keys": [
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "gaseus.p.group_id"
          ],
          "rows_examined_per_scan": 3,
          "rows_produced_per_join": 288,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "72.00",
            "eval_cost": "28.80",
            "prefix_cost": "201.61",
            "data_read_per_join": "29K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}