In employment law, unless you have a contract that specifically guarantees you a certain number of hours each week, those terms are then considered 'at will' and can legally change at any time. So, the change by itself is not illegal.
For it to legally be discrimination, you have to show more than just being treated differently from other people. You also have to show that the reason you are being treated differently is your race, religion, gender, age, disability or recent medical leave use. You didn't mention any of those, so I can't really address this further unless you choose to REPLY with additional information. If you do feel that it is based on one of those factors, you should file a complaint with the EEOC in your state, alleging discrimination (or the Department of Labor for FMLA/medical leave use).
Holiday pay is not legally required, so an employer can place those limitations on it that they feel is appropriate. If the employer requires that you have hours during a week that you get holiday pay, they can make that requirement. Now, if they have no such requirement and they have not terminated you, then you should be due holiday pay if that is their policy. You could argue for that with them.
I think, no matter what happens here, you should file for unemployment. You can claim "lack of work" as your basis for filing, which is something that you can do even when you are still technically employed but not getting hours. This will force the employer to make a decision, one way or the other, rather than leaving you in the dark on what is happening. It could also help your discrimination claim, if you have one, by forcing the employer to go on the record to explain their reason for not giving you hours.