The law is there to protect shop keepers against this kind of situation. It would take ages to count out 300 coins and there might've been a queue, it could've been closing time etc, and given the tiny margin made on petrol by the stations, the wages to pay the shop assistant to count out the pennies would cost more than the money made on it.
Its also way too many pennies for the float, they might not have enough space in the safe and therefore would've had to make an unscheduled bank trip which they made not have had staff for.
Its not as straightforward as "money's money". She should've taken her copper to the bank where they can weigh it in seconds on specialist scales and swap for notes.
Also regardless of laws relating to pennies, a shop can refuse any payment type if they so wish. A purchase is classed as a negotiated barter still - you want xyz and profer your cash, then the shop agrees to the trade or not. I worked in a shop years ago and we used to refuse Scottish notes, yes they are legal tender, but because we only saw one once every couple of years so had no idea if a note was genuine or fake. Its quite legal to do so.