Is there a way to get O(1) without extra space in the union find algorithm?
Sure, you can make Find run in $O(1)$ time if you allow Union to run in $O(n)$ time.

Suppose the elements are numbered $0,1,\dots,n-1$.  We'll maintain an array $A[0..n-1]$, where $A[i]$ is the set that contains element $i$.  Then a Find operation takes $O(1)$ time, since it consists solely of looking up in the array.  A Union operation can be done in $O(n)$ time by scanning through $A$ to find all elements of both sets and updating the array so that they're both contained in the same set.  Notice that this doesn't use any additional space.

You can replace the array with a hashtable if you prefer, and that will allow items to be identified by arbitrary identifiers (instead of integers $0..n-1$).

This probably isn't useful in practice unless Union operations are extremely rare, because the Union operation becomes so expensive.  In most situations it will probably be preferable to use a standard Union-Find data structure or extra space.