When you draw a chart in a container div, all of the contents of the div are overwritten, so chart_tip doesn't exist when you try to use it. Put chart_tip outside chart_div and it should work fine.
As an aside, drawing charts in hidden divs can be problematic. There are multiple ways around the issues, but generally I recommend unhiding the div prior to drawing the chart and hiding it again in a "ready" event listener for the chart, eg:
var tip = document.getElementById('chart_tip');
tip.style.display = 'block';
var chart = new google.visualization.ColumnChart(tip);
var runOnce = google.visualization.events.addListener(chart, 'ready', function () {
tip.style.display = 'none';
google.visualization.events.removeListener(runOnce);
});
chart.draw(data, {
height: 400,
width: 600
});