yeah i liked this idea about query_id too... 
thread_id + query_id is a nice solution (at least i think it will work)
i was considering query start time too, but since kill isn't a command with very high frequency (kills/second), the query_id could solve the problem nicely

the only problem i can see is: if thread id is low (example connection id = 50), and we have a server restart and at the same thread id (50), runs the same number of queries... 
well the probability is very very small... at least i think it is, and if we execute the KILL, we will get a connection lost from server... and we should execute the show processlist again...
if we don't want the show processlist again, just add the query start time (YYYY-MM-DD HH:MM:SS),  but for the first implementation query id is nice... 

the query_id is currently implemented? or should be implemented? sorry i'm asking without reading the source code ...

about syntax, should it be
KILL <thread_id> <query_id>
or 
KILL <thread_id> QUERY <query id>
?

thanks guys :)