The options field in the user table is a set of bits that each mean a different thing, and one of them is called 'pmboxwarning' and has the value 524288. The PM sending code checks that bit, and if it's set, it *won't* send a warning, because it indicates that one has already been sent. The query above clears that bit for everyone, so that you can test whether that's the reason that emails aren't being sent. Clearing it for everyone shouldn't be a problem because the worst that would happen is that someone might get the email twice.
I guess it would be safer to clear it for only one user you want to test. So if you have a user whose pm box is almost full and is not getting the warning email, you could do this:
Code:
UPDATE user SET options = options - 524288 WHERE (options & 524288) AND userid = X
but replace X with the userid. Then send a PM and see the user gets a warning PM this time.