Yep, the key is to stack the theano scaler with a numpy array. For example another way to do is
import theano
import theano.tensor as tt
x1shared = theano.shared(x1[:, None])
with pm.Model():
...
input_1 = tt.concatenate([x1shared, tt.tile(theta, len(x1), ndim=2).T], axis=1)
...