Versuche dies. Das Verschieben der Unterabfrage zum JOIN scheint das Problem zu beheben. Ich denke, das Problem hat mit der Unterabfrage in der WHERE-Klausel zu tun. Ich denke, dass in der WHERE-Klausel die Unterabfrage und die RAND-Funktion für jeden Datensatz ausgeführt werden. Dies ist wahrscheinlich der Grund, warum die Ergebnisse unterschiedlich sind.
SELECT a.AlbumID,
Videos_Demo.VideoID,
VideosInAlbums_Demo.AlbumID
FROM VideosInAlbums_Demo
LEFT JOIN Videos_Demo
ON Videos_Demo.VideoID = VideosInAlbums_Demo.VideoID
JOIN
(
SELECT AlbumID
FROM VideosInAlbums_Demo
WHERE VideoID = '1'
ORDER BY RAND()
LIMIT 1
) AS a ON VideosInAlbums_Demo.AlbumID = a.AlbumID