Displaying multiple fields as labels if one field is null in QGIS?
Use the "Coalesce" function. Coalesce takes the first non-null value from its arguments. So this expression should work:
coalesce("Temp Site",'') || '\n' || coalesce("Notes",'') || '\n' || coalesce("Function",'')
Update: This is no longer a problem. In QGIS 2.10 and greater Concat ignores null values and coalesce is no longer needed. See this answer instead Handling NULL values in labeling?