strano, a me funziona bene, ho riprodotto il tutto per curiosita':

codice:
$ /usr/local/mysql5/bin/mysql -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.1.36 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> create table tabella (id int, punteggio int) engine myisam;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into tabella values (1,50),(2,20),(3,40),(4,100),(5,76),(6,11);
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> select count(distinct punteggio)+1 as posizione from tabella where punteggio > (select punteggio from tabella where id = 3);
+-----------+
| posizione |
+-----------+
|         4 |
+-----------+
1 row in set (0.00 sec)

mysql> select count(*) + 1 as posizione from      (select * from tabella where punteggio >         (select punteggio from tabella where id=3) order by punteggio desc) as tab;
+-----------+
| posizione |
+-----------+
|         4 |
+-----------+
1 row in set (0.00 sec)
come si puo' vedere, sia la mia query che quella di nicola danno lo stesso risultato.

che versione di mysql avete?