Your main problem here is the NULL values; concatenating them will return NULL regardless of the other column contents.
Now the simplest solution would be to change the columns so that they store an empty string instead of NULL: you would just need to do this then
$sql = "SELECT CONCAT(col1, col2, col3) AS col";
If the NULL values are important elsewhere in your app then you will need to use IF to make this work
$sql = "SELECT CONCAT(IF(col1, col1, ''), IF(col2, col2, ''), IF(col3, col3, '')) AS col";
That works because NULL is false so it will be replaced by the empty string ''.