I'm writing this blind (ie: not with my eyes closed, but away from my PC with MC!). I think that you will have to have three separate smartlists.
1) <your definition for work songs> and a limit to 300 tracks, you might have to add a random sort modifier to prevent the same tracks being in the list each time.
2) [Genre]=[Christmas]
3) [Playlist]="Christmas","Work" ~sort=[Random]
The reason for having the three separate playlists and not writing something like:
((<work def>) or ([Genre]=[Christmas])) ~sort=[Random] <tracks>=300
(yes, my syntax is wrong, but I use wizards, so shoot me!)
is that MC will then kill some of your Christmas songs and if you have a lot of work songs, you may get proportionately very few Christmas ones.
The next temptation is to write
((<work def> <tracks>=300) or ([Genre]=[Christmas])) ~sort=[Random]
but the problem there is that MC doesn't know how to "nest" the modifiers and so this line is exactly equivalent to the first.
There are minor things in that (in theory) the playlist version and my second attempt at a single playlist will give you 300 tracks + your christmas music, whereas the first attempt at a single playlist will only give you 300 tracks (including Christmas... but then you can always adjust it manually, can't you?).
I wish the MC dev team would look at this a little more seriously becuase it pi.... really annoys me. So much so that I have a playlist group simply for "Smartlist Helpers" so that they don't clutter everything else...
Hope this helps.
P.