It is perfectly possible that the genes are statistically differentially expressed but have low fold changes. The reason is that you are ultimately testing whether the means of different groups are different. And while they can be different statistically the difference doesn’t have to be biologicaly meaningful.
As a very simple example;
t.test(log2(c(18,19,19,20,20)) , log2( c(21,19,22,23,24)))
p-value = 0.04511
OK, at a 5% level this is just significant, but:
mean(log2(c(18,19,19,20,20))) - mean(log2( c(21,19,22,23,24)))
You can see that the means are different but the actual magnitude of change is very small. It is now up to you to decide if such a small change is meaningful. It usually isn’t because your experimental technique itself has some limitations (noise, sensitivity, etc). That is why most people use an FC cut-off, for example 2. This cut-off is in many cases very arbitrary, but is the best way to protect yourself from noise.