These could and often do mean the same thing.
However, if someone said " to" it typically means that she was actually singing to them (usually in person). If she sang "for them" it could mean she was somewhere else singing for them (as in, in honor of them). For them could also mean was asked to sing by them and she sang for them (such as a job)
She sang to the crowd.
She sang for the group in honor of their good deed.
She sang for the children as requested by the group.