Apparently I could not do the following:
DECLARE @sql VARCHAR(2000)
SET @sql = 'SELECT es.* FROM emp_schedule es
WHERE es.work_status IN (' + (SELECT data_value FROM #absences) + ')'
exec sp_executesql @sql
column data_value is of type varchar and so is es.work_status. This query will give me error "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression." which makes sense since it is being used as expression in this one. Any ideas how I could implement this piece. Thanks guys.