Miałem już ten problem. Właściwość ConnectTimeout dotyczy tylko przekroczeń limitu czasu, które występują podczas łączenia się z bazą danych, a nie zapytań.
Czas oczekiwania na polecenie jednak określa, jak długo powinien czekać na zwrócenie zapytania. Uważam, że wartość domyślna to 30 sekund. Dokładnie sprawdź dokumentację swojej biblioteki MySql, ale dla SqlCommand CommandTimeout jest w sekundach, a nie w milisekundach.