I am not an experienced Mathematica user and thus I can't say what exactly is wrong in your example, but let me guess.
First, usually I try to avoid using approximate numbers (decimal notation) like 0.1 while working with symbolic computations. Such numbers can trigger numeric algorithms inside built-in functions which is probably not what we need. In your particular case one can rewrite the code as follows:
d = 10;
s = 1 / 10;
f = 1;
wavelength = 4 / 10000;
lens = Exp[(I*Pi*y^2)/(wavelength*f)];
aperture = Exp[-((y - d)^2)/(2*s^2)]*lens;
APERTURE = FourierTransform[aperture, y, k]
If you run this code you will get an exact solution for APERTURE:
E^(-5000 - (I (-1000 I + k)^2)/(200 (I + 50 \[Pi])))/(10 Sqrt[1 - 50 I \[Pi]])
As you can see, absolute values of APERTURE are extremely small and are far beyond machine precision which is automatically assumed when the system encounters approximate numbers.
I believe that was the problem: Mathematica identified approximate coefficients inside the Fourier integral and then tried to simplify the solution using numerical coefficients. These coefficients were too small and therefore whole expression was simplified to machine zero.
Hope I expressed my thoughts clearly.