Wolfram Language (Mathematica), 33 26 bytes
I just noticed that for no integer solution, the output is undefined instead of empty list; that allows to remove a few bytes.
x/.Solve[#==0,x,Integers]&
Now if no integer solution exists, the function returns x
.
Previously:
x/.Solve[#==0,x,Integers]/.x->{}&