Do what the documentation says and use INTEGER*4. Yes, it is non-standard but you are very unlikely to run into a compiler that does not understand it the way you want it. That being said, just plain INTEGER will probably also work (unless you have compiler directives forcing INTEGER to be some other size), since most compilers will use a 4-byte integer for the default INTEGER type even on 64-bit systems (I suspect they do this to try and maximize backwards compatibility for older source code). The only thing I would add is the EXTERNAL qualifier. E.g.,
INTEGER*4, EXTERNAL :: mxIsDouble
Do NOT use LOGICAL for these functions, since that would bring into play the byte-size of a logical vs integer and the bit-patterns of true vs false for your particular compiler. No need to complicate it with this.
As for INTEGER(KIND=4), I know this isn't required to map into a 4-byte integer per the standard, but my guess is your compiler will do exactly that and it will probably also work.