I’ve turned down jobs because I didn’t agree with the subject or it was because of my Morals. Just tread lightly and say “I’m booked” or “I don’t have the equipment/help/whatever for your job”
Telling people “I won’t shoot your wedding because you are gay” is just plain stupid IMO. When I was faced with this recently I just told them I had a shoot the day before and there was no guarantee I could be there in time.
Part of being a freelancer is picking and choosing jobs.