the character ' is interpreted by the clojure reader as a reader-macro which expands to a list containing the symbol quote
followed by whatever follows the ', so in your call to (m-type 'a)
the 'a
is expanding to:
user> (macroexpand-1 ''a)
(quote a)
then calling type on the list (quote a)
which is a Cons.
This may be a bit more clear if we make the m-type macro print the arguments as it sees them while it is evaluating:
user> (defmacro m-type [x] (println "x is " x) (type x))
#'user/m-type
user> (m-type 'a)
x is (quote a)
clojure.lang.Cons