Query Taking Over 23 Seconds To Run?

SELECT SQL_CALC_FOUND_ROWS products.product_id, IF(shared_descr.product_id IS NOT NULL, shared_descr.product, descr1.product) as product, popularity.total as popularity, store_supplier_links.supplier_id, 1 as instock_marker, IF(IF(products.tracking = 'O', (SELECT MAX(amount) FROM store_product_options_inventory s_inventory WHERE s_inventory.product_id = products.product_id) > 0, products.amount > 0), 1, IF(products.tracking = 'D', 1, 0)) as instock_sorting FROM store_products as products LEFT JOIN store_product_options_inventory as inventory ON inventory.product_id = products.product_id LEFT JOIN store_product_descriptions as descr1 ON descr1.product_id = products.product_id AND descr1.lang_code = 'en' LEFT JOIN store_product_prices as prices ON prices.product_id = products.product_id AND prices.lower_limit = 1 INNER JOIN store_products_categories as products_categories ON products_categories.product_id = products.product_id INNER JOIN store_categories ON store_categories.category_id = products_categories.category_id AND (store_categories.usergroup_ids = '' OR FIND_IN_SET(0, store_categories.usergroup_ids) OR FIND_IN_SET(2, store_categories.usergroup_ids) OR FIND_IN_SET(1, store_categories.usergroup_ids)) AND store_categories.status IN ('A', 'H') LEFT JOIN store_product_popularity as popularity ON popularity.product_id = products.product_id LEFT JOIN store_ult_product_descriptions shared_descr ON shared_descr.product_id = products.product_id AND shared_descr.company_id = 1 AND shared_descr.lang_code = 'en' LEFT JOIN store_supplier_links ON store_supplier_links.object_id = products.product_id AND store_supplier_links.object_type = 'P' WHERE 1 AND store_categories.company_id = 1 AND (CASE products.tracking WHEN 'O' THEN inventory.amount > 0 WHEN 'B' THEN products.amount > 0 ELSE 1 END) AND popularity.total >= 1 AND (products.usergroup_ids = '' OR FIND_IN_SET(0, products.usergroup_ids) OR FIND_IN_SET(2, products.usergroup_ids) OR FIND_IN_SET(1, products.usergroup_ids)) AND products.status IN ('A') AND prices.usergroup_id IN (0, 0, 2, 1) AND products.product_type IN ('P', 'C') GROUP BY products.product_id ORDER BY instock_sorting DESC, popularity.total desc, product_id ASC LIMIT 0, 10

I think this is the query for bestsellers but I could be wrong. Can anyone see a reason why it might be running so slowly?

I take that back. It is the most popular query.