Well, looks like I figured this out. Replace the query posted earlier with this one instead:
$specials_query_raw = "select A.products_id, B.products_name, A.products_price, C.specials_id, C.specials_new_products_price,
C.specials_date_added, C.specials_last_modified, C.expires_date, C.date_status_change, C.status, F.special_id from (" .
TABLE_PRODUCTS . " A, " . TABLE_PRODUCTS_DESCRIPTION . " B , products_to_categories E )
left join " . TABLE_SPECIALS . " C on C.products_id = A.products_id left join special_product F on A.products_id = F.product_id
left join special_category D on E.categories_id = D.categ_id where E.categories_id = $categ_id and E.products_id = A.products_id and
A.products_id = B.products_id and B.language_id = '" . (int)$languages_id . "' order by F.special_id, C.specials_id, B.products_name ";
For mysql5, you have to wrap multiple table declarations prior to a LEFT JOIN in parenthesis. I just tried it out on my site and it seems to work again. Hope this helps.
Alfredo