To lock a calculated field to its first value, it needs to reference itself to see if a value has already been written.
In your example, it would look like this (presuming the name of your calculated field is something like "Source"):
IF(ISBLANK({DE:Source}),IF({queueTopicID}="6335e54d00928f36d0689d4974d7f342","Email","Form"),{DE:Source})
The logic is: "if the calculated field "Source" is blank, give it a value using this IF statement. If "Source" is not blank (because a value has already been written to it), keep the existing value."
If you like my content, please take a moment to view and vote on my Idea Requests: https://tinyurl.com/4rbpr7hf