I think, Kruskal's algorithm can be sure of a cycle when , for an edge (u,v), the condition FindSet(u) == FindSet(v) evaluates to true, which means that both belong to same set.
The time , it would take would be atleast E*log(E) since it has to sort the edges first, before doing anything. In the worst case , the edge causing cycle may be the last edge to be examined in the for loop(see CLRS). Thus in the worst case it is same as running time of algo i.e E*log(V), since |E| < |V|^2.