Съгласно MySQL документация "kill connection thread_id" трябва да прекрати връзката, свързана с дадения thread_id. Но изглежда, че това не се случва (в този случай нишката на Java ще чака отговор завинаги). Може би можете да проверите дали връзката действително е затворена с помощта на някакъв мрежов инструмент (напр. netstat).
Сблъсквал съм се с висящи MySQL връзки преди и трябваше да прибягна до използването на socketTimeout Параметър на JDBC връзка (но внимавайте:socketTimeout трябва да бъде по-голям от времето, необходимо за завършване на най-дълго изпълняваната заявка). Можете също да опитате да използвате QueryTimeout за подготвено изявление.