That's a javascript error and javascript runs off what is sent to the browser (not what is in your cshtml file) so look at the page source.
var path = '@Url.Action("index","Survey")?id='
+ @Model.MyGuid+'&languageName=' +selectedValue;
alert(path.val());
The above will render as something like this
var path = '/Survey/index?id='
+ {6AAE15E3-E702-4251-A6F1-2A27EBBAA4A0}+'&languageName=' +selectedValue;
alert(path.val());
Is that valid javascript? No. When it gets to "+ {" it thinks the { is a code block. Now look at your working example
var t = "@Url.Action("index","Survey")?languageName="
+ selectedValue +"&id=@Model.MyGuid";
View the source and it will be like
var t = "/Survey/index?languageName="
+ selectedValue +"&id={6AAE15E3-E702-4251-A6F1-2A27EBBAA4A0}";
Is that valid? Yes. The "{ }" is inside a string block (it has quotes around it) so it knows it is a literal string and not a code block.
That might not be the specific issue as we don't know what MyGuid renders as, but it's going to be related to the same root issue.