Это происходит потому, что new {...} создает новый анонимный тип в Select.Когда вы вызываете ToString (), вы вызываете его для этого анонимного типа, а не для строки ModuleName.Если вы просто напишите .Select (s => s.ModuleName), вы получите строку вместо анонимного типа, а oldModule будет содержать Admin.
На самом деле вам даже не нужно ToString () вконец запроса, в результате FirstOrDefault () уже является строкой.