MySQL 5.1 High Cpu usage on CentOS 6
Let's see the slowest query in the system.  Quite likely, fixing it (adding an index, reformulating the SELECT, etc) is the best solution.  You mentioned SHOW FULL PROCESSLIST -- That is likely to show the naughty queries; let's see them, plus the associated SHOW CREATE TABLEs.

query_cache_size        = 128M -- too big; no more than 50M.  A big value slows down the system with pruning.

innodb_buffer_pool_size = 256M and key_buffer        = 800M -- What ENGINE are you using?  Neither of these values is likely to be 'good'.  See http://mysql.rjweb.org/doc.php/memory for further advice.  A poorly-sized cache could lead to extra I/O, which would be seen as slow queries.

table_cache            = 9000 -- Yikes!  How many tables do you have?  (Thousands of tables is an OS problem.)