Мда, код конечно эталонный. Хоть сейчас на стенку и в рамочку, "как писать код не приходя в сознание".
Впрочем, отвечатели, по традиции, не лучше.
Во-первых, нубская ошибка.
Если в запросе используются параметры, то
кавычечки в нем старательно вырисовывать не надо.
Во-вторых, зачем-то используемтся while, хотя строка нам нужна только одна.
Ну и в-третьих совсем уж, прямо скажем, бессмысленные телодвижения - return, после которого автор надеется выполнить какой-либо код, и поиск в
ассоциативном массиве значения с индексом 0.
Короче, если выбросить весь мусор, то у нас задачка в четыре действия.
1. Подготовить запрос
2. Исполнить запрос
3. Получить результат
4. проверить результат
$stmt = $pdo->prepare("SELECT 1 FROM reg WHERE login=?");
$stmt->execute([$login]);
$found = $stmt->fetchColumn();
if($found){
echo "Существует";
}else{
echo "Нет";
}