I have worked in a bar/retauraunt for 6 months and have usually worked thursday-sunday closes, averaging about 15-20 hours. I have never turned their shifts down. However my manager has cut my shifts and next week I have none at all, my name isn't even on the rota. Whereas, other people are still getting 10-25 hours and they're on a zero hour contract too. Do they have the right to do this even though I have worked pretty much the same shifts very week up to this point? I have done nothing but work hard for them.
I read something about mutuality of obligation.. if anyone can give more detail about this then that would be great. If I have gained my average hours over this time then how can they just all of a sudden decide to give me none at all? I would condider myself an employee rather than a worker.

Also another quick question. I called in absent from work on friday due to not being well (nothing contagious), and returned to work the next day. I began work and within 5 minutes of my shift I was told I have to go home because i need 48 hours off if I call in sick. (bare in mind it wasn't contagious, it tiredness and lack of energy due to low vitamin b12) The point of this matter is that nobody rang me on the friday or even the saturday before my shift to tell me not to come in. Instead I came in, wasted time and was sent home without prior notice. Is this wrong?

sorry for the long paragraphs but thank you for taking your time to read. Answers much apreciated :)