In addition to what Swiss Master said, IPN also needs to 'On' or 'Off' on your account, but not 'Disabled'.
If IPN is switched 'On', you will need to enter a URL in your PayPal Profile for IPN data (though you can still override which URL is used by sending notify_url on a per-transaction basis).
If IPN is switched 'Off', you will not receive IPN for all activities, but only for those where you sent notify_url in the transaction request itself.
If IPN is set to 'Disabled', no IPN messages will be generated at all, regardless of what you sent.
IPN will be automatically set to 'Disabled' if PayPal encounters non-HTTP 200 response codes from your IPN handler.
(For example, a HTTP 404, timeouts to the script, SSL errors when accessing the script, HTTP 500 errors, etc..)