Maybe this will help clarify:
Convolution in the time domain is equivalent to multiplication in the frequency domain. This is how we build simple convolutional seismograms.
s(t)=w(t)*r(t) => S(f)=W(f).R(f)
However, what you are trying to do is pretty much the exact opposite. A sinusoid in the time domain is a spike in the frequency domain. And what you are trying to do is "convolve" a gaussian with this spike, all in the frequency domain. But the same rule applies the other way: convolution in the frequency domain is equivalent to multiplication in the time domain.
S(f)=W(f)*R(f) => s(t)=w(t).r(t)
In order to get a wavelet (in time) whose Fourier transform is a Gaussian centered at a certain frequency, you will need to multiply a sinusoid of that certain frequency by a Gaussian window (in time). This "Gaussian times a sinusoid" is called a Morlet wavelet (or Gabor wavelet in EE).
nt=500; % Number of samples in your wavelet
dt=0.001; % Sample rate in time
t=dt*((1:nt)-ceil(nt/2))'; % Time vector for wavelet symmetric around zero
sinusoid=cos(2*pi*fdom.*t+phase); % Sinusoid of desired frequency and phase
win=exp(-(1*t*fdom).^2); % Gaussian window appropriate for dominant frequency
wav=win.*sinusoid; % Final Morlet wavelet
Hope this helps,