So as Ettore has pointed out the issue arises when one or more of the cells you want to concatenate is null - the concatenate fails because of the null value.
I'm afraid I don't have any tricks for this - but I can suggest three approaches and you can pick the one that works for you.
To avoid this problem you either have to:
a) Do the concatenate then check for rows in which it hasn't worked
OR
b) Make sure all the cells you are going to concatenate contain a non-null value to start with
OR
c) Check for null values within the concatenation statement
I suspect (a) is the simplest
e.g.
cells["First name"].value) + " " + cells["Last name"].value
If there are nulls in either of these columns, this statement will result in a blank for those rows. You can then use a filter by blank on the column to find and fix the problem rows.
For (b) there are multiple approaches but a couple of options are:
b1) Use 'facet by blank' on the columns you are going to include in the concatenation and exclude any blank values across all the columns before doing the concatenation
b2) Before the concatenation replace any null values in the cells using a GREL like
if(isNull(value)," ",value)
(you could use the new All->Transform menu option in OpenRefine 2.7 to do this across the project, but be careful as you are changing data with this!)
For (c) you can
c1) Check for null cells in the concatenate statement:
if(isNull(cells["First name"])," ",cells["First name"].value) + " " + if(isNull(cells["Last name"])," ",cells["Last name"].value)
c2) You can iterate through the columns to get the values, checking for nulls within the iterator, and then join together the resulting array - this is more concise code but is slightly more complicated to get your head around
forEach(row.columnNames[0,2],cn,if(isNull(cells[cn]),"",cells[cn].value)).join(" ")