La risposta di Nanne dato spiega perché non ottieni il risultato desiderato (la tua clausola WHERE rimuove le righe), ma non come risolverlo.
La soluzione è cambiare WHERE in AND in modo che la condizione sia parte della condizione di unione, non un filtro applicato dopo l'unione:
SELECT day.days, COUNT(*) as opens
FROM day
LEFT OUTER JOIN tracking
ON day.days = DAY(FROM_UNIXTIME(open_date))
AND tracking.open_id = 10
GROUP BY day.days
Ora tutte le righe nella tabella di sinistra saranno presenti nel risultato.