If you only want the rows with em.STATUS = 'casual' then use INNER JOIN instead of LEFT JOIN.
And when you use AND's and OR's in the WHERE clause, you'd better use brackets to prevend unexpected behaviour.
Based on what you wrote, I think it should be:
SELECT a.EMP_ID, CONCAT(LASTNAME, ', ' , FIRSTNAME) AS FULLNAME, a.LOG_IN, a.LOG_OUT
FROM hrdb.attendance AS a
INNER JOIN hris.employment em
ON a.EMP_ID = em.EMP_NO
WHERE ( DATE(LOG_IN) BETWEEN '2011-12-08' AND '2011-12-23'
OR LOG_IN IS NULL )
AND em.STATUS = 'Casual'