If you want to create a zero value invoice (say $0) that lists the non-billable entries as 'No charge' items, you can do that by checking the project rule Always show in Create Batch Invoice screen. Now if you have non-billable time entries only on the project and approve them, they automatically get attached to the next invoice you create from the Create Batch Invoice screen. Note that the project shows up for billing there even though there is no billable amount because of this rule and if you check its time details (by clicking on the drop-down arrow and selecting Time Details), you can see the non-billable entries there. When you process this invoice, the entries show up as 'No charge' items and the invoice amount is zero. Check the Core Help for details on the project rule.
Note: To be able to see non-billable entries on the invoice, you should make sure that the rule Hide non-billable time entries on invoices is not checked in Global Settings > Billing. You should also make sure that you are using an invoice template that shows time entry line items (e.g. Hourly Invoice), otherwise the time entries won't display on the invoice.