You're WHERE clause is a little wacky - the JOIN takes place in the FROM clause.
SELECT villas.ID, villas.name, villas.resort, pricing.ID, pricing.week, pricing.availability
FROM villas LEFT OUTER JOIN pricing ON (pricing.price_id = villas.ID)
WHERE villas.resort = 'cala_dor' OR villas.resort = 'pollenca' AND villas.beds LIKE '%' AND pricing.week= 1073088000 AND pricing.availability = '1' ORDER BY villas.owner DESC, villas.beds ASC
villas.beds LIKE '%' - this is a bit of extra work on SQL. You may find leaving this out will help your query.
villas.ID = pricing.ID - this WITH the left outer join doesn't make sense. This chunk of SQL says for every villa ID match it to a pricing ID, but thats not what your LEFT JOIN says. Your LEFT JOIN says for every villa ID, see if there's a pricing ID. If there is, include it, otherwise, just bring back the villa ID. I pulled this out of your where clause. Its legit to be there, but negates what you're trying to do with the LEFT JOIN.