According to spec, USB 2.0 Full speed device can have maximum packet as below.
64 bytes - bulk endpoints
64 bytes - interrupt endpoints
1024 bytes - isoc endpoints
Yes, you can send only wMaxPacket with USB_LoadInEP(). You can use DMA with automatic memory management mode where this API triggers DMA instead of manually copying data from memory to USB buffer. You don't need to send zero length packet.
Full speed isochronous is 1023 bytes, not 1024.
The maximum data payload size allowed for low-speed devices is 8 bytes.
The maximum data payload size for full-speed devices is 1023.
The maximum data payload size for high-speed devices is 1024 bytes.
Section 8.4.4 Data Packets