You're mixing up SQL and PAL.
PAL = only the stuff outside of quotes
SQL = the language in which you write commands directly to the database, like when using the Query or ExecSQL commands.
Also: What you wrote there is perfectly fine if your goal was to say "give me all tracks where neither the album name nor the track title is exactly 'christmas'"
i.e.: Christmas Wonderland !=/<> Christmas => will still be returned.
What you're looking for is a LIKE expression:
SELECT * FROM songlist WHERE NOT title LIKE '%christmas%' AND NOT album ILIKE '%christmas%';
LIKE = regular expressions in MySQL, you can use wildcards or specific grouping expressions. Here I only used the wildcard symbol in front and back of the word christmas to say match the word christmas preceded by anything (including nothing/at the very beginning) and followed by anything (including nothing/at the very end)
% = Wildcard symbol for zero or more characters. You're not limited to the first and last position with this. You could also write '%n40' to match your username dan40 or 'dan%0' to match any dan50 or dana0. You can also use more than one of these.
Attn: For MySQL Like is case insensitive, it will match Christmas, CHRISTMAS, christmas etc., but this isn't the same in all SQL dialects, Postgres for example is case sensitive by default and has a special ILIKE operator. No idea about MS SQL or Firebird, though. I don't work with either of these on my job and have almost no experience with them in SAM.