It is illegal for them no to let you pay in cash if you want to, it is also illegal if they don't let you use you gift crd, because most likely when they sold them to who ever gave them to you they didn't have this new messed up rule, and on top of that, no store can ever ask you to see your ID when paying with a credit card, specially with VISA (As long as they are singed on the back), one of the reason credit/debit card are safer than cash, is because they your bank gives you fraud protection, but when you also show them you ID, they could still that info and it could be used for identity theft...
I never use cash for anything, if the place does not take plastic, they don't get my business, but just because if this, I will go and pay cash tomorrow, and I just hope they tell me I can't, they are no body, and they have no right to ask to see my ID, heck, even the police needs a real reason to ask for it...