Check the value of option
M-x customize-option RET initial-major-mode RET.
Its default value is
lisp-interaction-mode, which puts
*scratch* in that mode.
C-h v initial-major-mode tells you this:
Major mode command symbol to use for the initial
You can customize this variable.
So remove the customization that changed its value from the default value. In buffer
*Customize Option: Initial Major Mode*, click the
State button and choose the menu item that reverts the option to its standard value.
You say that you tried just using
setq to change the value, presumably in your init file. Using Customize instead, and reverting to the default value, instead of setting and saving the standard value, might help.
Beyond that, it is possible that something in your init file is changing the value of the option later on. To find it, recursively bisect your init file (by commenting out 1/2, then 3/4, 7/8, 15/16,...) until you find the tiny part that causes the problem. If it's not obvious then how to fix it, report what you found here. You can comment out a region of your init file by selecting it and using command
C-u the command uncomments the region.