SELECT 
  SQL_CALC_FOUND_ROWS products.product_id, 
  descr1.product as product, 
  companies.company as company_name, 
  products.product_type, 
  products.parent_product_id, 
  cscart_product_review_prepared_data.average_rating average_rating, 
  cscart_product_review_prepared_data.reviews_count product_reviews_count 
FROM 
  cscart_products as products 
  LEFT JOIN cscart_product_descriptions as descr1 ON descr1.product_id = products.product_id 
  AND descr1.lang_code = 'vi' 
  LEFT JOIN cscart_product_prices as prices ON prices.product_id = products.product_id 
  AND prices.lower_limit = 1 
  LEFT JOIN cscart_companies AS companies ON companies.company_id = products.company_id 
  LEFT JOIN cscart_products_tag_categories as products_tag_categories ON products_tag_categories.product_id = products.product_id 
  LEFT JOIN cscart_categories ON cscart_categories.category_id = products_tag_categories.category_id 
  LEFT JOIN cscart_product_review_prepared_data ON cscart_product_review_prepared_data.product_id = products.product_id 
  AND cscart_product_review_prepared_data.storefront_id = 0 
  LEFT JOIN cscart_product_popularity as popularity ON popularity.product_id = products.product_id 
WHERE 
  1 
  AND cscart_categories.category_id IN (430) 
  AND products.product_id NOT IN (
    298, 4684, 49005, 6368, 46592, 47020, 
    6659, 48235, 48061, 1749, 5608, 2522, 
    27352, 787, 47973
  ) 
  AND companies.status IN ('A') 
  AND (
    products.amount > 0 
    OR products.tracking = 'D'
  ) 
  AND (
    products.usergroup_ids = '' 
    OR FIND_IN_SET(0, products.usergroup_ids) 
    OR FIND_IN_SET(1, products.usergroup_ids)
  ) 
  AND products.status IN ('A') 
  AND prices.usergroup_id IN (0, 0, 1) 
  AND products.parent_product_id = 0 
GROUP BY 
  products.product_id 
ORDER BY 
  popularity.total desc, 
  products.product_id ASC 
LIMIT 
  0, 32

Query time 0.07255

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "popularity.total desc, products.product_id",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_categories",
              "access_type": "const",
              "possible_keys": ["PRIMARY", "p_category_id"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["category_id"],
              "ref": ["const"],
              "rows": 1,
              "filtered": 100,
              "using_index": true
            }
          },
          {
            "table": {
              "table_name": "products_tag_categories",
              "access_type": "ref",
              "possible_keys": ["PRIMARY", "pt"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["category_id"],
              "ref": ["const"],
              "rows": 258,
              "filtered": 100,
              "attached_condition": "products_tag_categories.category_id <=> 430",
              "using_index": true
            }
          },
          {
            "table": {
              "table_name": "products",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "status", "idx_parent_product_id"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products_tag_categories.product_id"],
              "rows": 1,
              "filtered": 18.54700279,
              "index_condition": "products.product_id not in (298,4684,49005,6368,46592,47020,6659,48235,48061,1749,5608,2522,27352,787,47973)",
              "attached_condition": "products.parent_product_id = 0 and (products.amount > 0 or products.tracking = 'D') and (products.usergroup_ids = '' or find_in_set(0,products.usergroup_ids) or find_in_set(1,products.usergroup_ids)) and products.`status` = 'A'"
            }
          },
          {
            "table": {
              "table_name": "companies",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "4",
              "used_key_parts": ["company_id"],
              "ref": ["dev_db.products.company_id"],
              "rows": 1,
              "filtered": 100,
              "attached_condition": "companies.`status` = 'A'"
            }
          },
          {
            "table": {
              "table_name": "descr1",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "product_id"],
              "key": "PRIMARY",
              "key_length": "11",
              "used_key_parts": ["product_id", "lang_code"],
              "ref": ["dev_db.products_tag_categories.product_id", "const"],
              "rows": 1,
              "filtered": 100,
              "attached_condition": "trigcond(descr1.lang_code = 'vi')"
            }
          },
          {
            "table": {
              "table_name": "cscart_product_review_prepared_data",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY"],
              "key": "PRIMARY",
              "key_length": "7",
              "used_key_parts": ["product_id", "storefront_id"],
              "ref": ["dev_db.products_tag_categories.product_id", "const"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "popularity",
              "access_type": "eq_ref",
              "possible_keys": ["PRIMARY", "total"],
              "key": "PRIMARY",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products_tag_categories.product_id"],
              "rows": 1,
              "filtered": 100
            }
          },
          {
            "table": {
              "table_name": "prices",
              "access_type": "ref",
              "possible_keys": [
                "usergroup",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "key": "product_id",
              "key_length": "3",
              "used_key_parts": ["product_id"],
              "ref": ["dev_db.products_tag_categories.product_id"],
              "rows": 1,
              "filtered": 99.9960556,
              "attached_condition": "prices.lower_limit = 1 and prices.usergroup_id in (0,0,1)"
            }
          }
        ]
      }
    }
  }
}

Result

product_id product company_name product_type parent_product_id average_rating product_reviews_count
50216 Bó Hoa Khô Chúc Mừng Sinh Nhật, Tranh Hoa Khô Dáng Chữ Nhật, Khung Tranh Trang Trí, Hoa Khô, Quà Tặng Độc Đáo, Quà Tặng Cá Nhân Hóa Muối Concept P 0 5.00 18
50194 Quà Tặng Nến Thơm Custom Thông Điệp, Món Quà Độc Đáo Chạm Đến Trái Tim, Nến Thơm Tuỳ Chỉnh, Dễ Dàng Tùy Biến, Quà Tặng Ý Nghĩa, Quà Tặng Cá Nhân Hoá DEAR concept P 0 4.80 5
40927 Set Quà 5 Hũ Nến Thơm Mini OnaTree - Vietnamese Cosmetics P 0 5.00 1
6372 Hộp Quà Nice Night, Set Quà Tặng Ngủ Ngon, Quà Tặng Người Yêu, Quà Tặng Bạn Gái, Nến Thơm, Trà Hoa, Mật Ong, Bịt Mắt Ngủ Vải Lụa Satin The Joy Box P 0 5.00 13
6358 Hộp Quà Snack And Tea - Bữa Phụ Ngon Miệng, Lựa Chọn Lành Mạnh, Đa Dạng Hương Vị, Màu Sắc Bắt Mắt, Quà Tặng Lý Tưởng The Joy Box P 0 5.00 18
6357 Hộp Quà Wellness, Quà Tặng Sức Khỏe, Quà Tặng Thiên Nhiên, Quà Tặng Sinh Nhật, Quà Tặng Người Yêu Thương, Mật Ong Cao Cấp, Trà Hoa, Túi Thơm The Joy Box P 0 4.91 64
31633 Trà Hoa Atiso Đỏ Và Trái Cây, Trà Hoa Thiên Nhiên, Trà Thảo Mộc, Nguyên Liệu Địa Phương, Hương Vị Đa Dạng, Trà Cam, Trà Táo, Ý Tưởng Quà Tặng Just Viet P 0 4.94 17
1975 Hộp Quà 2 Hũ Nến Thơm “Falling In Love”, Hũ Thiếc, Mang hương vị yêu thương đến từng không gian, Quà Tặng Nến Thơm Sáp Đậu Nành, Gợi Ý Quà Tặng Chia Kandles P 0 5.00 5
2305 Set Quà Hoa & Nến Thơm, Bộ Sưu Tập “For My Beloved” Chia Kandles P 0 5.00 3
49192 Hộp Quà Hoa & Nến Thơm “Means To Me”, Bộ Quà Tặng Cho Mọi Khoảnh Khắc, Quà Tặng Sinh Nhật Độc Đáo & Ý Nghĩa, Quà Tặng Valentine Lý Tưởng Chia Kandles P 0 5.00 3
2303 Hộp Quà 2 Hũ Nến Thơm “Deforest Symphony”, Mang Thiên Nhiên Vào Nhà, Món Quà Tinh Tế Cho Mọi Dịp, Quà Tặng Nến Thơm, Gợi Ý Quà Tặng Chia Kandles P 0 5.00 1
6354 Hộp Quà The Rose, Quà Tặng Phụ Nữ, Quà Tặng Hoa Hồng, Quà Tặng Tinh Tế, Quà Tặng Ý Nghĩa, Quà Tặng Tự Nhiên, Nến Thơm, Muối Tắm, Trà Hoa Hồng, Túi Thơm The Joy Box P 0 5.00 22
31965 Hộp Quà 4 Nến Thơm “Xmas Mood”, Hũ Thiếc Chia Kandles P 0 5.00 8
26895 Nến Cupcake LIAM Candle P 0 5.00 8
26894 Nến Bánh Sinh Nhật LIAM Candle P 0 5.00 8
38797 Thiệp For You Nhu Pham Art P 0 5.00 1
26872 Fire, Nến Phong Thủy Hệ Hỏa LIAM Candle P 0 5.00 7
47567 Hộp Quà “Afternoon Tea”, Hộp Quà Trà Chiều, Quà Tặng Phụ Nữ, The Joy Box, Quà Tặng 8/3, Quà Tặng Sinh Nhật, Quà Tặng Valentine, Thiết Kế Sang Trọng, Trải Nghiệm Trà Chiều Độc Đáo, Món Quà Ý Nghĩa The Joy Box P 0 4.73 22
26871 Wood, Nến Phong Thủy Hệ Mộc LIAM Candle P 0 5.00 3
26876 Nến Thơm Hoa Lài LIAM Candle P 0 5.00 1
26870 Metal, Nến Phong Thủy Hệ Kim LIAM Candle P 0 5.00 6
26874 Earth, Nến Phong Thủy Hệ Thổ LIAM Candle P 0 5.00 6
26878 Nến Thơm Gỗ Teak LIAM Candle P 0 5.00 6
26885 Set 4 Nến Macaron LIAM Candle P 0 0
26875 Nến Thơm Chanh Sả LIAM Candle P 0 0
26879 Nến Thơm Gỗ Và Da LIAM Candle P 0 0
26884 Set 4 Nến Tealight Hình Tim Trang Trí LIAM Candle P 0 0
1972 Hộp Quà 4 Hũ Nến Thơm “The Meaning Of Life”, Sáp Đậu Nành, 4 Mùi Hương Cho 4 Cung Bậc Cảm Xúc, Quà Tặng Ý Nghĩa, Quà Tặng Nến Thơm, Ý Tưởng Quà Tặng Chia Kandles P 0 5.00 2
44424 Nến Thơm Trang Trí Hoa Khô Laxie Candles P 0 5.00 6
5141 Nến Thơm Lá OnaTree - Vietnamese Cosmetics P 0 4.67 6
297 Vòng Cổ Đá Phong Thuỷ, Mang Đến Năng Lượng Tốt, Vòng Thủ Công, Đá Tự Nhiên, Ý Nghĩa Mang Đến Sự Sung Túc Và Khỏe Mạnh Crystals Macrame P 0 5.00 1
51 Áo Thun Hào Sĩ Phường, Áo Thun Trắng Nam Nữ, Áo Văn Hóa Việt Nam, Áo Thun Trắng Thêu Hình, Quà Lưu Niệm O Collection P 0 5.00 2