Create a "Not Attending" Option for CiviEvent
You can create a custom "Participant Status" at civicrm/admin/participant_status (via the menu at Administer > CiviEvent > Participant Statuses).



I don't think there is a default way to expose the participant status on a core event registration form (they are typically for admins in the backend only), so you may consider using a separate workflow with a tag or group for those that are not attending, as noted by @Nicholai below. You might even be able to use Rules to automatically change their status to the new one you created based on the tag/group they are in.

However, if you are using Drupal with Webform-CiviCRM for the registration, it would be a nice clean solution to expose this new participant status on the form (allowing "Registered" or "Not Attending" as choices), and then use Webform's Conditional functionality to show or hide event registration fields as appropriate. This way they can indicate they are not attending without having to see/fill out any custom registration fields on the form.