$10 does seem a little expensive for a single gift. Thank goodness he didn't want to get the whole family matching scarves.
The amount of money you give your kids to spend is certainly your business. If you only give a total of $10, then the scarf is out of the question if your son wants to buy other gifts as well.
The thing is, this is a fundraiser and gifts or no gifts, the money the school gets isn't "wasted". Heaven knows my kids have sold things and held steak and spaghetti feeds at school. Did I need a candle that cost $10? No. Was it the greatest steak or spaghetti? No. Could I have prepared a complete dinner for my family for much less? Yes, but that's not really the point.
The kids get to be proud of participating and in your case, your kids get to feel like they were able to pick something out for you on their own. Yes, you give them the money and know ahead of time, but the thought is there for you.
I would find out if this is something they do every year and start planning in January how your kids can earn and save money for their Christmas fund for next year. I'm not saying it all has to be spent at the school, but Dad can take them shopping for you and you can take them shopping for Dad and each other. One dollar per week would earn each of them $52.
That way, they can feel like the money is their own and they might think more carefully how it's spent.
Just an idea.
I wish you the best and hope you get some great responses.