La documentation MySQL indique
Et si vous n'avez pas de données, il renvoie simplement les deux valeurs comme NULL.
Si vous souhaitez que la deuxième requête renvoie également le jeu de résultats vide, vous devez filtrer les valeurs NULL, par exemple avec la clause HAVING que vous pouvez utiliser avec les fonctions d'agrégation :
SELECT DISTINCT u_id, MAX(timestamp) as time FROM my_table GROUP BY u_id HAVING time IS NOT NULL;