mysql restart won't kill child processes on CentOS
The script /etc/init.d/mysqld is dependent on the presence of the file mysql.sock. If that file is missing, run service mysqld restart or service mysqld stop simply does not work.
Over the years, I have seen many incidents where mysql.sock just disappears (going back to MySQL 4.x). See ServerFault Post : What should mysqld.sock contain, why don't I have it?. When this happens, you will have to resort to mysqladmin shutdown.
If you tried this:
mysqladmin -h127.0.0.1 -uroot -p shutdown

this may fail if it authenticates as root@localhost
Instead, shutdown mysql using the TCP/IP protocol
mysqladmin -h127.0.0.1 --protocol=tcp -uroot -p shutdown

This bypasses checking for the socket file mysql.sock.
Give it a Try !!!
CAVEAT
I have discussed using mysqladmin shutdown before

Dec 14, 2012 : Percona-server time out on /etc/init.d/mysql start (ServerFault)
May 08, 2012 : How to properly stop MySQL server on Mac OS X?
Feb 06, 2012 : MySQL Database and Table Loss