ponieważ w drugim przypadku nie przypisujesz do zmiennej polecenia, tylko przypisujesz wartość jaką zwróci funkcja mysql_query() a zgodnie z manualem:
Cytat
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
Use mysql_num_rows() to find out how many rows were returned for a SELECT statement or mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.
mysql_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query.
jeśli zajrzysz do manuala
http://php.net/manual/en/function.echo.php, to zobaczysz, że echo nie jest właściwie funkcją i niczego nie zwraca, służy tylko do wyświetlania parametru
poczytaj dokładnie manuala dla obydwu funkcji, to zrozumiesz tam jest wszystko opisane