Can I create a hidden membership level that isn't included on the registration form?

Yes you can!

To do this, create the membership level as normal in Restrict > Membership Levels, but set the "Status" field to "Inactive".

If the membership level has already been created, you can also locate it in the table, hover over it, and click "Deactivate".

Inactive membership levels can still be used in restrictions and you can manually assign customers to this membership level through the admin panel, but the membership level will not appear on the public registration form.