Да, потому что ваша mp3-переменная объявляется дважды в двух разных местах: 1.
`while mp3.title.upper()`
2.
[mp3.title.upper() for mp3 in songs]:
в первом случае очевидно, что mp3 объявлен ранее, но вво втором случае вы перекрываете первый цикл for, потому что теперь каждый элемент песни будет удерживаться mp3