Si su consulta no tiene ningún parámetro, también puede evitar usar la declaración preparada. Algo como esto debería ser suficiente
header('Content-type: application/json');
echo json_encode(
$conn->query('SELECT id, name FROM thetable')
->fetch_all(MYSQLI_ASSOC)
);
exit;
Si necesita la declaración, use mysqli_stmt::get_result
$stmt = $conn->prepare($sql);
// $stmt->bind_param(...);
$stmt->execute();
$result = $stmt->get_result();
header('Content-type: application/json');
echo json_encode($result->fetch_all(MYSQLI_ASSOC));
exit;