In your example it seems to me that the result of your concatenated string is discarded. I think you need to actually insert the new string into the buffer.
I'm not really very familiar with yasnippet syntax, so this may not be the cleanest solution, but the following seems to work for me:
func ${1:$$(when (and yas-modified-p
yas-moving-away-p)
(insert ")" )
(backward-char (+ 1 (length yas-text)))
(insert "("))} ${2:funcName} {
$0
}