One problem I see is that this:
(Type != 'Lunch' OR Type != 'Break')
is the same as this:
( 1 == 1 )
(in other words the condition will always evaluate to TRUE for all values of Type). Of course, that wouldn't cause an empty result set (since it wouldn't remove any results at all from the result set), so it sounds like the error lies with the former subcondition:
(WorkDate = '$WorkDate' AND TechNum = '$TechNum')
You haven't shown us where/how you define $WorkDate or $TechNum, but have you tried echo'ing out the SQL query string and manually executing it yourself with only this WHERE condition to see if you get any rows?
EDIT: And then, of course, one wonders why you're prepare()'ing and execute()'ing a statement that has no placeholders rather than simply executing the SQL query string as-is (unless the variables mentioned above contain user-supplied data, in which case you should instead be bind()'ing those variables to placeholders).