Please respect the one-question-per-question rule. This answers your first question. I suggest removing your second and asking it separately, linking here as appropriate.
It is a tree, so I would use forest. I would also use orthogonol or 'forked' edges. Otherwise, you will have to mess around with arrow tips etc. and I still don't think it will look aesthetically pleasing.
It is safe to use boxes containing tikzpictures inside tikzpictures because the boxes are typeset separately, so that's what I do here. An alternative would be pics, but you will likely still need boxes anyway.
Here's the basic forest configuration:
\forestset{%
declare count register={board no},
board no'=0,
We use a forest count register to ensure a unique number which we can use to name the box for each node. Then we create a chess node style taking 4 arguments, which wraps your code in a box, ensures a unique box for each board and sets the node content to that box.
chess node/.style n args=4{%
board no'+=1,
Increment our counter.
TeX={%
Execute the following code immediately and directly in TeX i.e. not inside the picture.
\expandafter\newbox\csname boardbox\foresteregister{board no}\endcsname
Make a new box with a unique name.
\expandafter\setbox\csname boardbox\foresteregister{board no}\endcsname=\hbox{%
Set the box to the desired tikzpicture, which is just a copy of what you had in the question.
\begin{tikzpicture}
\foreach \rows in {1,...,#1}
\foreach \cols in {1,...,#2}
{
\pgfmathparse{mod(\rows+\cols,2) ? "white" : "black!30"}
\edef\colour{\pgfmathresult}
\filldraw[\colour] (\rows-1,\cols-1) rectangle ++ (1,1);
}
\foreach \xchess/\ychess in {#3}
\node at (\ychess-0.5,\xchess-0.5) {\scalebox{2}{\symqueen}};
\draw[ultra thick,#4] (0,0) rectangle (#1,#2);
\end{tikzpicture}% comment line endings to avoid spaces
}%
},
Set the content of the node to the box, expanding now so we get the right one and not just the last one created when forest actually comes to use it.
content/.expanded=\expandafter\box\csname boardbox\foresteregister{board no}\endcsname,
},
}

Aside from the above, we use forked edges, zero inner sep and thicker lines.
If you don't want forked edges, you can modify the code to create something like

which uses 5pt for the width of the edges and is, imho, quite ugly. However, that is partly to make the effect of the changes clear. Doubtless you would choose something subtler.
for tree={
inner sep=0pt,
edge path={%
\noexpand\scoped[on background layer]{\noexpand\path[\forestoption{edge}] (!u.parent anchor)--(.child anchor)\forestoption{edge label};}%
This puts the edges on the background layer defined by the backgrounds library. Aside from that, it is just the standard definition forest uses by default for edge path.
},
edge+={shorten >=-2pt,shorten <=-2pt,line width=5pt},
This extends the edge by 2pt at the beginning and end of the path. Depending on the size of your nodes and the thickness of your lines, you may adjust this as appropriate. Just don't try this with non-opaque nodes as the results will not be pleasing.
},
This produces the appearance of a mitred end where the edge joins a node at an angle, without having to mess around figuring out which angle is required. It is the equivalent of hemming: you just hide the mess under something neater.
Complete code:
\documentclass[border=10pt]{standalone}
% ateb: https://tex.stackexchange.com/a/729516/
% addaswyd o gwestiwn R. Absil: https://tex.stackexchange.com/q/729489/
\usepackage[x11names,dvipsnames]{xcolor}
\usepackage[edges]{forest}
\usepackage{skak}
\usetikzlibrary{backgrounds}
\forestset{%
declare count register={board no},
board no'=0,
chess node/.style n args=4{%
board no'+=1,
TeX={%
\expandafter\newbox\csname boardbox\foresteregister{board no}\endcsname
\expandafter\setbox\csname boardbox\foresteregister{board no}\endcsname=\hbox{%
\begin{tikzpicture}
\foreach \rows in {1,...,#1}
\foreach \cols in {1,...,#2}
{
\pgfmathparse{mod(\rows+\cols,2) ? "white" : "black!30"}
\edef\colour{\pgfmathresult}
\filldraw[\colour] (\rows-1,\cols-1) rectangle ++ (1,1);
}
\foreach \xchess/\ychess in {#3}
\node at (\ychess-0.5,\xchess-0.5) {\scalebox{2}{\symqueen}};
\draw[ultra thick,#4] (0,0) rectangle (#1,#2);
\end{tikzpicture}%
}%
},
content/.expanded=\expandafter\box\csname boardbox\foresteregister{board no}\endcsname,
},
}
\begin{document}
\begin{forest}
for tree={
inner sep=0pt,
},
forked edges,
edge+={ultra thick},
[,chess node={4}{4}{}{black}
[,chess node={4}{4}{4/1}{black}
[,chess node={4}{4}{4/1,3/3}{red!60}]
[,chess node={4}{4}{4/1,3/4}{black}
[,chess node={4}{4}{4/1,3/4,2/2}{red!60}]
]
]
[,chess node={4}{4}{4/2}{black}
[,chess node={4}{4}{4/2,3/4}{black}
[,chess node={4}{4}{4/2,3/4,2/1}{black}
[,chess node={4}{4}{4/2,3/4,2/1,1/3}{Green}
]
]
]
]
[,chess node={4}{4}{4/3}{black}
[,chess node={4}{4}{4/3,3/1}{black}
[,chess node={4}{4}{4/3,3/1,2/4}{black}
[,chess node={4}{4}{4/3,3/1,2/4,1/2}{Green}]
]
]
]
[,chess node={4}{4}{4/4}{black}
[,chess node={4}{4}{4/4,3/1}{black}
[,chess node={4}{4}{4/4,3/1,2/3}{red!60}]
]
[,chess node={4}{4}{4/4,3/2}{red!60}]
]
]
\end{forest}
\begin{forest}
for tree={
inner sep=0pt,
edge path={%
\noexpand\scoped[on background layer]{\noexpand\path[\forestoption{edge}] (!u.parent anchor)--(.child anchor)\forestoption{edge label};}%
},
edge+={shorten >=-2pt,shorten <=-2pt,line width=5pt},
},
[,chess node={4}{4}{}{black}
[,chess node={4}{4}{4/1}{black}
[,chess node={4}{4}{4/1,3/3}{red!60}]
[,chess node={4}{4}{4/1,3/4}{black}
[,chess node={4}{4}{4/1,3/4,2/2}{red!60}]
]
]
[,chess node={4}{4}{4/2}{black}
[,chess node={4}{4}{4/2,3/4}{black}
[,chess node={4}{4}{4/2,3/4,2/1}{black}
[,chess node={4}{4}{4/2,3/4,2/1,1/3}{Green}
]
]
]
]
[,chess node={4}{4}{4/3}{black}
[,chess node={4}{4}{4/3,3/1}{black}
[,chess node={4}{4}{4/3,3/1,2/4}{black}
[,chess node={4}{4}{4/3,3/1,2/4,1/2}{Green}]
]
]
]
[,chess node={4}{4}{4/4}{black}
[,chess node={4}{4}{4/4,3/1}{black}
[,chess node={4}{4}{4/4,3/1,2/3}{red!60}]
]
[,chess node={4}{4}{4/4,3/2}{red!60}]
]
]
\end{forest}
\end{document}
\picmight be the safer option.\chessnodethat wouldn't wor0k in a pic. What went wrong when you tried it?