The reason is that 230 gets interpreted as 230pt. The x and y dimensions get stored in \pgf@xx and \pgf@yy, respectively. You could use them as follows.
\documentclass[11pt,a4paper]{letter}
\usepackage{tikz}
\usetikzlibrary{positioning}
\newlength{\xunit}
\newlength{\yunit}
\makeatletter
\tikzset{get units/.code={\xunit=\pgf@xx%
\yunit=\pgf@yy}}
\makeatother
\begin{document}
\begin{tikzpicture}[x=0.5mm,get units]%
\coordinate(start) at (0,0);
\coordinate(end) at (230, 0);
\node(start label)[below=1mm of start]{Start};
\node(end label)[below=1mm of end]{End};
\draw[thick,->] (start) -- (end);
\node(test)[draw,thick,above=1mm of start,minimum width=230\xunit,anchor=south west]{};
\end{tikzpicture}
\end{document}

However, this may be considered a "hack". If you want something that adjust to start and end, you could use calc (or fit).
\documentclass[11pt,a4paper]{letter}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\begin{document}
\begin{tikzpicture}[x=0.5mm]%
\coordinate(start) at (0,0);
\coordinate(end) at (230, 0);
\node(start label)[below=1mm of start]{Start};
\node(end label)[below=1mm of end]{End};
\draw[thick,->] (start) -- (end);
\path let \p1=($(end)-(start)$) in node (test)
[draw,thick,above=1mm of start,minimum width=\x1,anchor=south west]{};
\end{tikzpicture}
\end{document}

Or to illustrate in a comparison between 230, which get interpreted as 230pt and 230 times your x unit.
\documentclass[11pt,a4paper]{letter}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[x=0.5mm]%
\coordinate(start) at (0,0);
\coordinate(end) at (230, 0);
\node(start label)[below=1mm of start]{Start};
\node(end label)[below=1mm of end]{End};
\draw[thick,->] (start) -- (end);
\node(test)[draw,thick,above=8mm of start,minimum width=230*0.5mm,anchor=south west]{};
\draw[thick,decorate,decoration={brace,mirror}] (test.south west) -- (test.south east)
node[midway,below]{230*0.5mm (x unit is 0.5mm)};
\node(calc)[draw,thick,above=5mm of test.north west,minimum
width=230,anchor=south west]{};
\draw[thick,decorate,decoration={brace}] (calc.north west) --
(calc.north east) node[midway,above]{230 gets interpreted as 230pt};
\end{tikzpicture}
\end{document}

230*0.5mmin the node, so technically it's still not beholden to the scale because you're having to re-specify it. I will have a lot of nodes and want to be able to changex=0.5mmwithout having to update every node. In other words, I want to sayminimum width=230and have the230interpreted as "units", just as it is when I set thecoordinatelocation. – me-- Jun 11 '19 at 04:31coordinateuses units andnodedecides to use points :/ – me-- Jun 11 '19 at 04:48