SELECT
SQL_CALC_FOUND_ROWS
p.id, p.price, p.price2, p.print_id, p.up_down, p.instagram, p.instagram_date,
(SELECT img FROM `product_img` WHERE product_id = s.product_id AND sort IN (1) AND color NOT IN (156,157, 158,159, 160,161, 162,163) ORDER BY RAND() LIMIT 0,1) AS img2,
concat(YEAR(p.start), DATE_FORMAT(p.start, '%m')) AS Ym,
TO_DAYS( '2017-03-31 00:00:00' ) - TO_DAYS(p.start) AS `day`,
(SELECT SUM(sklad) FROM `product_sale` WHERE product_id = s.product_id GROUP BY product_id) AS sklad,
r2.tovar_prefix,
IF (print.name_ru IS NOT NULL, print.name_ru, p.name) AS name,
IF (print.name_eng IS NOT NULL, print.name_eng, p.name_eng) AS name_eng,
( SUM(s.sale_cof) + s.new + p.up_down) AS number,
SUM(s.sale) AS sale, s.new,
m.id AS main_id
FROM
`product_sale` AS s
LEFT JOIN
`product` AS p ON p.id = s.product_id
LEFT JOIN
`razdel` AS rr ON rr.id = p.razdel
LEFT JOIN
`print` AS print ON print.id = p.print_id
LEFT JOIN
`print_razdel` AS print_razdel ON print_razdel.print_id = p.print_id
LEFT JOIN
`razdel2` AS r2 ON r2.id = rr.razdel2_id
LEFT JOIN
`product_main` AS m ON m.print_id = p.print_id AND m.hide = 0
WHERE
rr.razdel2_id = 11 AND
print_razdel.print_razdel_id = 6 AND
p.print_id != 0 AND
p.live = 0 AND
p.sale = 0 AND
r2.hide = 0 AND
rr.hide = 0
GROUP BY
s.product_id
ORDER BY
number DESC,
p.id DESC
LIMIT
0,42
и общее количество строк
SELECT FOUND_ROWS( ) AS count
P.S. Как бывает полезно взглянуть на свой код через некоторое время.