How to display the Event Registration Form for public?
You should look at permissions. It seems anonymous users are not allowed to access these custom fields.

You can do this with the drupal permission
"CiviCRM: access all custom data "

Or, if you do not want to let anonymous people access all custom data, then you can use the CiviCRM permission system ACL, which lets you configure more fine grained access to custom fields.

More info: http://book.civicrm.org/user/initial-set-up/permissions-and-access-control/