Simply :
When the device need to know the Mac address of certain PC , it send ARP request to all devices asking them what is the mac for this specific IP . in this case the destination mac for this arp request which will go to all devices is FFFF-FFFF-FFFF because it is the broadcast mac address.
In case of some scenario as we have a master and backup router, when the master is down and the backup is up we need to update the MAC table of the clients in order not to send traffic to master any more .. in this case, the backup device send gratuitous arp to inform the clients that the mac of the gateway changed to his mac address .
RFC 3927, which is based on Gratuitous ARP, specifies 00:00:00:00:00:00 for the target MAC. However many simple TCP/IP stacks have an API which permits the specification of only one MAC value, and when the Ethernet Destination field is set to 'broadcast', the ARP target is also set 'broadcast'. Note: Normal ARP requests have the same value in the ARP Packet Target MAC address as in the Ethernet Destination field.
Please also check these useful links from Wireshark for more clarification:
ARP :
https://wiki.wireshark.org/AddressResolutionProtocol
Gratuitous ARP
https://wiki.wireshark.org/Gratuitous_ARP