If traffic shaping is enabled then the packet priority is set to whatever value is in the shaper configuration. However, if the packet does not push the bandwidth over the guaranteed bandwidth for that shaper then the priority is unconditionally set to high (0).
So, even if you give VoIP traffic a high priority, unless you change the global default then all the FTP traffic will also be high and be on the same queue. As a result the high priority VoIP traffic can get interrupted by the FTP traffic.
You can change the global priority as described above to fix this problem. You can also adjust the TOS based priority if the traffic has different TOS bits assigned for different traffic types. FortiOS traffic shaping acts more like traffic limiting and the guaranteed bandwidth is a best effort.
By adjusting the priorities as described above, it should be possible to shape traffic to meet your requirements.