concat joins the arguments together, so that function you have above joins a string with the empty string, which doesn't do anything.
Does the expression you have above work if only one option is selected? The reason it doesn't work is because of the [name = question] filter. That will only match entries in the lookup table whose name is the stored value of the question, but if multiple entries are selected, the stored value will be a space-separated list. I think instead you could do something like this
join will combine multiple values into one, and the first argument is a separator - here I'm using a command and space, but you could use anything. selected(question, name) checks whether name is among the values selected in question.
the code jr:itext('lang-code-label') basically is a token that grabs the current label value in the form for the question lang-code. lang-code is where Dimagi instructs you to store the codes of the different languages. these codes need to match with the field property in the lookup table
your current lookup table does not have different languages set up from what I can tell. if you are only using one language in your app, the remove this piece from your code [@lang = jr:itext('lang-code-label')]