Как использовать prepared statements, если знак вопроса должен находиться в одинарных кавычках?
Не должен. В кавычках в SQL пишутся строки.
Плейсхолдер - это не строка. Следовательно, кавычек быть не должно.
Кроме этого, немедленно выкинуть весь этот ужас с if и echo "Не удалось трали-вали то-то". Никому неинтересно читать, что там тебе не удалось и что не получилось. Писать код надо нормально, без этого частокола if-ов.
Нумеровать стейтменты тоже не нужно, если только они не вложены в цикл. И тип надо ставить s а не b$stmt = $connection->prepare("SELECT * FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
if ($stmt->fetch()) {  
  echo "Вы уже зарегестрированы, создавать несколько аккаунтов с одинаковым имейлом нельзя"; //не дать челику снова зарегаться
}
Нормальные примеры работы с mysqli смотри здесь
Знак вопроса не должен быть в кавычках, иначе это будет строковой литерал вместо подстановочного символа. Нужно просто:"SELECT * FROM users WHERE email = ?"