Está filtrando tc_date_transaction que filtra todos los valores nulos en este campo, incluso los generados por la combinación externa y, por lo tanto, anula su propósito. Mueva el filtro "tc_date_transaction ="17/06/2010"" a la cláusula de unión y funcionará.
SELECT *
FROM employee LEFT OUTER JOIN timecard
ON employee.employee_id = timecard.employee_id and tc_date_transaction = "17/06/2010";
o escribe
SELECT *
FROM employee LEFT OUTER JOIN timecard
ON employee.employee_id = timecard.employee_id
where (tc_date_transaction = "17/06/2010" or tc_date_transaction is null);