Is there a way to PlaySound then Destroy(gameobject)?

Without using Destroy(gameobject, f) because the lowest value I can use is 1 and that is too long?

 void OnCollisionEnter2D(Collision2D collision2D)
    {

        if (collision2D.transform.name == "BlueWall")
        {
            PlaySound(0);
            Destroy(gameObject);       
        }

I would do this with a coroutine.

Start the coroutine and call the play sound, then yield until the sound has completed playing, once that’s done, destroy your object.

void OnCollisionEnter2D(Collision2D collision2D)
{
	if (collision2D.transform.name == "BlueWall")
	{
		StartCoroutine(DestroyWithSound());
	}
}

private IEnumerator DestroyWithSound()
{
	PlaySound(0);
	
	// Note you'll need to determine "soundIsPlaying" depednig on where PlaySound is playing a
	// sound from. You'll need to know the audio source to check if its playing or not.
	while( soundIsPlaying )
	{
		yield return null;
	}
	
	Destroy(gameObject);
}