The reason for this could be that the sound is already playing. If left click/"fire" button is pressed repeatedly, the sound will be played from the beginning each time. What may have to be checked is whether the sound is playing:
if not $ShootSound.is_playing():
It may also be a good idea to put in a small "cool down" for the weapon, e.g. 0.2 or 0.3 seconds.