it is not jointly linear, or jointly convex or concave. “Separately” (respectively) doesn’t count. When anything in CVX is required to be affine, or convex, or concave, that must hold jointly for all CVX (optimization) variables, not separately per variable
X = 0 or 1 can be handled by declaring X as binary:
variable X(m,n) binary
and then don’t include the relaxation 0 <= X <= 1.
Of course, it is then a possibly difficult to solve MISOCP., which the QAP is. The relaxed version should be fast to solve, although its results might be garbage, other than providing a (possibly not very tight) lower bound on the optimal objective value.
Before proceeding, please carefully read
Why isn't CVX accepting my model? READ THIS FIRST!