As its name suggests, Websockets provides a web browser with a socket-like TCP/IP connection to a web server. You can program to this directly if you like (just like you can program to a TCP/IP sockets library when running outside a browser) but you can also run higher-level protocols such as MQTT over websockets.
So your question is similar to asking "what's the difference between JMS or MQ and TCP/IP?". The quick answer, in the case of MQTT, is that the MQTT client and server provide some additional capabilities, over and above those provided by websockets, such as:
- store and forward decoupling of sending and receiving applications
- publish/subscribe decoupling (so you can do one->many messaging)
- reliable message delivery
- "last will and testament" - alerting if the connection to the client is lost unexpectedly