There's no blacklist function (that I know of) but there are a couple of simple workarounds detailed below.
Restrict to Admins Only
Your first option would be to set up networking and restrict it so only Admins can join networks (Network Settings → WiFi Adapter → Advanced)

The caveat here is that the user can no longer be an admin.
Progmatically remove network
If you’d prefer this automated, your second option is to have a terminal command run periodically:
networksetup -removepreferredwirelessnetwork en1 SSID
If the SSID doesn't exist, it will just error out without any issues. If it does exist, it will remove it from the preferred (saved) network list.
You could put this is a simple bash script
#!/bin/bash
SSID=MyBannedSSID
net=$(networksetup -listpreferredwirelessnetworks en1 | grep ${SSID} | cut -f2)
ap=$(networksetup -getairportnetwork en1 | cut -d ":" -f 2 | cut -c 2-)
Remove Network if exists in saved networks
if [ "$net" = "$SSID" ]
then networksetup -removepreferredwirelessnetwork en1 ${SSID}
sleep 5 # Sleep 5 seconds to allow removal to complete.
else echo "No Network"
fi
#Power cycle wireless adapter if connected to banned network
if [ "$ap" = "$SSID" ]
then networksetup -setairportpower en1 off
sleep 2 #Sleep 2 seconds for service to die
networksetup -setairportpower en1 on
fi
Then, use cron or launchd (preferred) to run it periodically. The caveat is that while they may join the network, it will eventually (per your schedule) delete it. The time interval will be entirely up to you.
You have to run this as root (meaning put in /Library/LaunchDaemons if using launchd) otherwise it will ask you for a password every time.
What the script is doing
- Checks to see if banned SSID is saved
- Removes the saved network if it exists
- Power cycles the airport card if it's attached to the banned SSID