Przy takim zapytaniu Join mam te same wyniki i działa ono :) nadal nie wiem, dlaczego zagnieżdżone zapytania trwały do 40-50 sekund. Podziękowania dla użytkownika Dibakar Paul, który mi pomógł!
$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'";