The problem comes from the fact that at not point in your table all the columns are used independently for the compiler to calculate their with. This is why, with @david-carlisle's answer, as soon as he adds a line with all the cells independently used, the layout changes.
If you want more control over your table you can use an environment which lets you set the width of them such as tabu
or tabularx
. but even there, without help, the environment will not know what to do.
\documentclass[a4paper,12pt]{standalone}
\usepackage{tabu}
\begin{document}
\begin{tabu}{|l|X|X|X|X|X|X|}
\hline
& \multicolumn{6}{c|}{Parameters}\\
\hline
We don't care * & \multicolumn{2}{l|}{cause it's a test} & \multicolumn{2}{l|}{cause it's a test} & \multicolumn{2}{l|}{cause it's a test}\\
\hline
Punctuation ? & \multicolumn{3}{c|}{yes+} & empty & empty & empty \\ %& \multicolumn{3}{c|}{no}\\
\hline
\end{tabu}
\end{document}
will give you

The tabu
package gives you the \tabuphantomline
so that cell widths can be calculated properly without printing anything:
\documentclass[a4paper,12pt]{standalone}
\usepackage{tabu}
\begin{document}
\begin{tabu}{|l|X|X|X|X|X|X|}
\hline
\tabuphantomline
& \multicolumn{6}{c|}{Parameters}\\
\hline
We don't care * & \multicolumn{2}{l|}{cause it's a test} & \multicolumn{2}{l|}{cause it's a test} & \multicolumn{2}{l|}{cause it's a test}\\
\hline
Punctuation ? & \multicolumn{3}{c|}{yes+} & empty & empty & empty \\ %& \multicolumn{3}{c|}{no}\\
\hline
\end{tabu}
\end{document}
which then gives you something probably more akin to what you were expecting:

tabu
and tabularx
add the X
column type for which the column width is calculated so that all X
cells have the same dimension (although multiplier are also possible). So for you example, having the last 6 columns as X
column would probably make sense.