FreeFileSync is exclusively a graphical application as far as I know. This means that you need a working display (normally X11, or Wayland nowadays). An application normally works with a display defined by the environment variable DISPLAY.
The console is normally DISPLAY=:0. That is, the value is colon-zero. VNC or other remote sessions or other types of graphical sessions could have some different value.
So if you are sure you want a graphical application to run from cron, you should include before the application call the variable DISPLAY.
0 0 * * * DISPLAY=:0 /opt/FreeFileSync/FreeFileSync /root/Sync.ffs_batch
Now, I don't have a fantastic understanding of displays. It tends to be that the display is owned by a user, so the process needs to be started by the same user who owns the display in question.
On Unix and GNU/Linux systems, a more traditional way to accomplish a scripted file synchronization job is to use rsync. I realize it's entirely different from FreeFileSync and would present an entirely different learning curve, but probably would solve the problem you are looking to resolve.