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 (494) 
  AND products.product_id NOT IN (
    2042, 41431, 41436, 41445, 6357, 6367, 
    6544, 43852, 27357, 27359, 27361, 27363, 
    5768, 5769, 5771, 5773
  ) 
  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 
  160, 32

Query time 0.04184

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": 297,
              "filtered": 100,
              "attached_condition": "products_tag_categories.category_id <=> 494",
              "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 (2042,41431,41436,41445,6357,6367,6544,43852,27357,27359,27361,27363,5768,5769,5771,5773)",
              "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
2044 Túi Moon Shadow, Túi Đeo Vai Da Vân Cá Sấu Có Khóa Kéo, Phong Cách Sang Trọng Và Thời Thượng, Dáng Túi Chữ Nhật, Gia Công Tinh Xảo Hoi An Soul P 0 0
2047 Ví Da Cầm Tay, Nắp Gập, Nút Bấm Chắc Chắn, Kiểu Dáng Nhỏ Gọn Và Tinh Tế, Thiết Kế Tối Giản Hiện Đại, Quà Tặng Cho Bạn Bè Và Người Thân Hoi An Soul P 0 5.00 2
49003 Gối Chườm Thảo Mộc, Quà Tặng Công Sở, Hộp Quà Cho Nữ, Quà Tặng Thư Giãn, Quà Tặng Sức Khỏe, Quà Tặng Chăm Sóc Bản Thân The Joy Box P 0 0
49030 Túi Lục Bình Small Little Joy Ver.2, Túi Quai Da Màu Xanh Cốm, Phụ Kiện Thời Trang Nữ, Nâng Tầm Phong Cách Với Dấu Ấn Cá Nhân, Quà Tặng Cá Nhân Hoá Chu Du Bag P 0 0
49703 Tinh Dầu Khuếch Tán Vintage Lounge, Khoảnh Khắc Thư Giãn Đẳng Cấp, Thành Phần Thiên Nhiên, Tinh Dầu Cao Cấp, Quà Tặng Mùi Hương, Quà Tặng Tinh Tế The Joy Box P 0
41434 Túi Maya Màu Nâu Sậm, Túi Da Vân Cá Sấu Dáng Vuông, Túi Da Cao Cấp, Chất Da Thật, Thiết Kế Dáng Vuông, Phong Cách Thời Thượng Hoi An Soul P 0 5.00 1
41432 Túi Lily Màu Nâu Sẫm, Túi Da Vân Cá Sấu, Túi Da Dáng Đứng, Vân Cá Sấu Tự Nhiên Đẳng Cấp, Form Rộng, Đựng Vừa Laptop Hoi An Soul P 0 5.00 1
48783 Hộp Quà Nến Thơm Và Diêm In-the-pink, Quà Tặng Cho Mẹ, Quà Tặng Phụ Nữ, Quà Tặng Sức Khỏe Tinh Thần, Nến Thơm, Diêm, Xà Phòng Thảo Mộc, Muối Hồng, The Joy Box P 0
49010 Hộp Quà Coral Floral, Hộp Quà Tặng Nữ, Gối Chườm Thảo Mộc, Kẹp Tóc Càng Cua Trendy, Xà Bông Hữu Cơ, Hộp Quà Chăm Sóc Bản Thân The Joy Box P 0 5.00 3
49107 Hộp Quà Treasure Health, Quà Tặng Sức Khỏe, Quà Tặng Người Thân, Quà Tặng Sang Trọng, Trà, Mật Ong, Saffron The Joy Box P 0
321 Túi Tote Da Dập Nổi Có Khóa Cài, Màu Đen Cổ Điển, Dễ Phối Đồ, Phong Cách Cá Tính Và Thanh Lịch, Ngăn Lớn Rộng Rãi, Đựng Vừa Laptop Hoi An Soul P 0 5.00 1
41433 Túi Maya Màu Đen, Túi Da Vân Cá Sấu Dáng Vuông, Túi Da Dáng Vuông, Chất Liệu Da Thật, Độ Bóng Mờ Tự Nhiên, Phối Khóa Đồng Trẻ Trung Hoi An Soul P 0
49028 Túi Cói Quai Da Thời Trang, Duyên Dáng Từ Phố Đến Biển, Xinh Xắn & Tiện Lợi, Thoải Mái & Sang Trọng, Phụ Kiện Thời Trang, Quà Tặng Cho Nàng Chu Du Bag P 0 5.00 4
49016 Hộp Quà Gratitude Attitude, Hộp Quà Tặng Mẹ, Quà Tặng Phụ Nữ, Hộp Quà Sức Khỏe, Quà Tặng Cảm Ơn, Trà Hoa, Mật Ong, Bình Lọc Trà The Joy Box P 0
49009 Hộp Quà Honey Sweet, Hộp Quà Tặng Nữ, Gối Chườm Thảo Mộc, Muối Ngâm Thảo Mộc, Xà Bông Hữu Cơ, Hộp Quà Chăm Sóc Bản Thân, Hộp Quà Thư Giãn The Joy Box P 0
49008 Hộp Quà Warm Embrace, Hộp Quà Tặng Nữ, Gối Chườm Thảo Mộc, Hộp Quà Chăm Sóc Bản Thân, Quà Tặng Thư Giãn The Joy Box P 0
49204 Đĩa Gốm Tròn Thủ Công 25cm Hoạ Tiết Hiện Đại Y Thanh, Đĩa Gốm Thủ Công, Đồ Gốm Thượng Hạng, Gốm Việt Nam, Đồ Dùng Bếp Bằng Gốm, Quà Tặng Sang Trọng Tu Hú Ceramics P 0
49205 Đĩa Gốm Tròn 25cm Hoạ Tiết Rau Má Xanh Coban, Đĩa Gốm Thủ Công, Đồ Gốm Thượng Hạng, Gốm Việt Nam, Đồ Dùng Bếp Bằng Gốm, Quà Tặng Sang Trọng Tu Hú Ceramics P 0
50285 Hộp Quà "The Beauty Inside", Nét Đẹp Từ Thiên Nhiên, Nhụy Hoa Nghệ Tây, Nến Thơm, Trà Nụ Hoa Hồng, Mật Ong, Hộp Lụa Sang Trọng, Quà Tặng Cho Nữ The Curator P 0
50347 Tranh Đất Sét Theo Yêu Cầu, Cỡ Lớn, Ảnh Người Và Thông Điệp Tự Chọn, Từ 2-4 Người, Tượng Đất Sét Tự Chọn, Quà Tặng Cá Nhân Hóa, Quà Cưới Ý Nghĩa KATTIE HANDMADE P 0 0
50213 Gương "Tiên Hạc" Bọc Da Vẽ Tay, Khắc Tên Cá Nhân Hóa, Bay Bổng Và Thanh Tao, BST Gương Tài Sắc, Gương Mica, Quà Tặng Cá Nhân Hóa, Quà Tặng Cho Nữ ĐỎ P 0