It looks like you're loading and playing a song, then queueing it, but then loading and playing the second song on the next iteration of the loop, then queueing it again...
n = musicDir + str(x[i])
pygame.mixer.music.load(n) # so you load the song...
pygame.mixer.music.play() # then you play it....
pygame.mixer.music.queue(musicDir + str(x[i])) # i hasn't changed, this is the same song
# you just loaded and started playing
Then the for
loops goes to the next iteration and you do the exact same thing, but with the next song.
Try something like this:
n = musicDir + str[0] # let's load and play the first song
pygame.mixer.music.load(n)
pygame.mixer.music.play()
for song in x:
pygame.mixer.music.queue(musicDir + str(song)) # loop over and queue the rest