Normally \node does not accept the clip option for its path use but the lower level PGF version does. It's a little bit more laborous but essentially the same idea.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\begin{scope}
%\pgfset{shape aspect=0.5} Uncomment this and remove minimum size for this option
\pgfset{minimum size=3cm,inner sep=2mm}
\pgfnode{diamond}{center}{}{nodename}{\pgfusepath{stroke,clip}}
\fill[black] (-1cm,-1cm) rectangle (1cm, 1cm);
\end{scope}
\end{tikzpicture}
\end{document}

There is a problem here about the bounding box. The actual bounding box is computed by the size of the rectangle if too large even if it is clipped. So one should do another trick after everything is drawn outside the scope, say with an additional node via [use as bounding box].
update (altermundus)
\fbox{\begin{tikzpicture}
\begin{scope}
[local bounding box=bb] \node [draw,shape=diamond,minimum size=3cm,inner sep=2mm]{};
\end{scope}
\pgfset{minimum size=3cm,inner sep=2mm}
\pgfnode{diamond}{center}{}{nodename}{\pgfusepath{stroke,clip}}
\fill[black] (-3cm,-1cm) rectangle (3cm, 1cm);
\pgfresetboundingbox
\useasboundingbox (bb.south west) rectangle (bb.north east);
\end{tikzpicture}}

EDIT: Regarding the position of the clipping node...
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts,shapes.geometric}
\begin{document}
\begin{tikzpicture}
\draw[top color= black!50] (-2,-2) rectangle (5,4);
\begin{scope}
\pgfset{minimum width=5cm,minimum height=3cm}
\pgfsetlinewidth{1mm}
\pgftransformshift{\pgfpoint{1.5cm}{1.5cm}}
\pgfnode{cloud callout}{center}{}{nodename}{\pgfusepath{stroke,clip}}
%Cleaning up the mess we caused
\pgftransformreset
\pgfsetlinewidth{0.4pt}
\pgfset{minimum width=1pt,minimum height=1pt}
% Back to drawing
\fill[white] (-2cm,-2cm) rectangle (5cm,4cm);
\fill[red] (0cm,0cm) rectangle (1.5cm, 1.5cm);
\fill[yellow] (2cm,2cm) circle (1cm);
\node[fill=blue,rotate=90,isosceles triangle,draw,minimum height=1.5cm] at (2.5cm,1cm) {};
\end{scope}
\node[align=center,draw,anchor=north west] (a) at (nodename.pointer) {Geometric\\Thinker};
\end{tikzpicture}
\end{document}
