i think some of the problem might just lie in how the query is written
the tipoff is COUNT DISTINCT -- this will return a result, but the use of DISTINCT is often a sign of underlying problems, such as a query which has cross join effects
in order to understand your scenario, i took the liberty of re-formatting it so that an analysis of what it's doing can more easily be effected
you should strive to incorporate formatting into your queries as well
SELECT COUNT(DISTINCT p.products_id) AS total
FROM products p
JOIN manufacturers m
JOIN specials s
ON p.products_id = s.products_id
, products_description pd
, categories c
, products_to_categories p2c
WHERE p.products_status = '1'
AND p.products_id = pd.products_id
AND pd.language_id = '1'
AND p.products_id = p2c.products_id
AND p2c.categories_id = c.categories_id
AND ( ( pd.products_name like '%x%'
or p.products_model like '%x%'
or m.manufacturers_name like '%x%'
or pd.products_description like '%x%'
can i ask you why you are returning just a count? if this is a search query, aren't you also going to, you know, return some products?