Com uma consulta Join como essa, tenho os mesmos resultados e está funcionando :) ainda não sei por que as consultas aninhadas levaram de 40 a 50 segundos. Obrigado ao usuário Dibakar Paul que me ajudou!
$sql1 = "Select distinct title, artist, album
from songs where id not in(Select distinct song.id
from songs song inner join playlist playlist
on playlist.song_id=song.id
inner join playlists playlists
on playlists.playlist_id=playlist.playlist_id
and playlists.name = '$playlist_name')";
$sql2 = "Select distinct song.title, song.artist, song.album
from songs song inner join playlist playlist
on playlist.song_id=song.id
inner join playlists playlists
on playlists.playlist_id=playlist.playlist_id
and playlists.name = '$playlist_name'";