The difference is that 'have weekend off' isn't correct English. ;)
If you changed it to 'have the weekend off', then it would be fine.
The difference then is that if you say 'I have weekends off' - you mean that you do not normally work any weekends.
'I have the weekend off' means that you normally work most weekends, but you don't have to work the next weekend ( i.e. this weekend)