There isn't a huge difference. To me, "sing for " has a slightly stronger sense that you are doing it for the audience's benefit or enjoyment, or at their request.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.