An application proxy (or more commonly called application level gateway) is a firewall at the application level. A packet filter is a firewall at the packet level. This mean with a packet filter you are not able to filter web traffic for malware since it has no understanding of the applications protocols of the web (i.e. HTTP). An application level gateway instead understand the protocol and can thus scan the body of a HTTP response for malware.
See also the OSI model: a packet filter is at layer 4 while an application level gateway is at layer 7.
Firstly,Why is a packet filter is enough in a situation where traffic is busy?
This statement is wrong. The only criterion to decide if you use a packet filter or an application proxy should be the security requirements and not the performance. While a packet filter is much faster than an application proxy it is of no use if you actually need application level inspection.
But a packet filter has its use too as a way to separate networks or as the first line of defense like against DOS attacks.
Secondly,Isn't application proxy safer than packet filter considering proxy can filter bad data like virus?
That is correct and very important.
Thirdly, is it okay to use stateful packet filter instead of packet filter?
A stateful packet filter is still a packet filter so you can use it. Keeping states has the advantage that you can make more strict rules (i.e. based on connections and not on single packets). But it needs more memory.