Not necessarily.
A native vlan is used, as you've mentioned, to forward packets that do not have a tag when they get to the ingress of the port.
A trunk will forward untagged packets to the native vlan configured.
If a trunk gets a packet that does not have a tag, and there was no native vlan, it would not know how to forward it. This is what the native vlan provides; a way for the trunk to know where to forward the packet if the packet were not tagged.
When the trunk receives a packet without a tag, it forwards it to the native vlan.
Native vlan is defined in a clause in the 802.1Q standard for interoperability with older devices that do not understand 802.1Q.